ファイルをセット

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ファイルをセット

成功した報告

by C1000 » 2006年5月31日(水) 20:52

うまくできました。淡幻星さんToshiさんありがとうございました。

by C1000 » 2006年5月27日(土) 18:47

FormatMessage関数を使ってエラーを調べたら「ファイル名、ディレクトリ名、ボリュームラベル構文が間違っています」とでました。なのでパスがおかしいようです。

by C1000 » 2006年5月24日(水) 18:37

ファイルのパスをフルパスで指定してみて下さい。
フルパスを指定するとセットできました。なので文字列の受け渡しに問題があるようなのでもう少し見直してみます。

by 淡幻星 » 2006年5月23日(火) 22:54

ファイルのパスをフルパスで指定してみて下さい。

by C1000 » 2006年5月23日(火) 21:17

書いておきましたがそこまでたどり着かないのです。

コード: 全て選択


'ファイルを開けなかったとき
    If hFile=INVALID_HANDLE_VALUE Then
        MessageBox(hMainWnd,"ファイルオープンに失敗","エラー",MB_OK or MB_ICONEXCLAMATION) 'ここではじかれます。
        Exit Sub 'ここをとってもセットされない
    End If

by Toshi » 2006年5月23日(火) 20:57

ファイルは正しく読み込まれているようなので、

コード: 全て選択


   SetDlgItemText(hMainWnd,MainEdit,buffer) 

この部分で何か問題があるかもしれません。(ウィンドウ ハンドルや ID が正しくないなど)
「具体的に」どこがうまく動かないのでしょうか?

ファイルをセット

by C1000 » 2006年5月23日(火) 20:29

ファイルを開きエディトボックスにセットしようとしたのですがうまく動きません。
どこが悪いのでしょうか?(ブレークポイントできちんとしたパスが渡されているのを確かめました。)

コード: 全て選択

Sub TextSet(path As BytePtr)	'ファイルを開きエディトボックスにセットする関数
    Dim hFile As VoidPtr           'ファイルハンドル
    Dim FileSize As Long         'ファイルサイズ
    Dim buffer As BytePtr        'バッファポインタ
    Dim dwAccessByte As DWord
	'変数pathにファイルパスが格納される

    'ファイルを開く
    hFile=CreateFile(path, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, 
                     ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
	OutputDebugString(path)

	'ファイルを開けなかったとき
    If hFile=INVALID_HANDLE_VALUE Then
        MessageBox(hMainWnd,"ファイルオープンに失敗","エラー",MB_OK or MB_ICONEXCLAMATION) 'ここではじかれます。
        Exit Sub
    End If

    'ファイルサイズを取得し、バッファを確保する
    FileSize=GetFileSize(hFile,0)
    buffer=calloc(FileSize+1)

    'ファイルの読み込み
    ReadFile(hFile,buffer,FileSize,VarPtr(dwAccessByte),ByVal 0)
    buffer[dwAccessByte]=0

    'ファイルをクローズ
    CloseHandle(hFile)

    'テキストバッファをエディットボックスにセットする
    SetDlgItemText(hMainWnd,MainEdit,buffer)

    'バッファを解放する
    free(buffer)
End Sub

ページトップ