2018年9月6日木曜日

GetOpenFileNameが0を返してファイル名を取得するダイアログが出ない時

時々ハマるのでメモ。

ファイルのオープンでファイル名を取得する時に、
GetOpenFileNameが0を返してファイル名を取得するダイアログが出ない時がある。

これは、時々あって、出なかったり出たりなどする時があっていつもハマる。

答えは、ファイル名を取得する変数をキレイにしてからAPIに渡す。

具体的には

    memset(&ofn,0x00,sizeof(OPENFILENAME));
// 追加ここから
    memset(szFile,0x20,sizeof(szFile));
    szFile[0] = '\0';
// 追加ここまで

    ofn.lpstrFile = szFile;                            // 選択ファイル名格納
    ofn.nMaxFile = sizeof(szFile);                     // ファイル名サイズ


こんな感じで、02とか\0とかでしっかりクリアしておくとダイアログ出てくる。
いつもハマるんだよね~。時々しか使わないしこれ。

0 件のコメント:

コメントを投稿