- 締切済み
【WIN32 GetSaveFileNameがVISTA以降で落ちる】
【WIN32 GetSaveFileNameがVISTA以降で落ちる】 VS2008でC++を用いて、WIN32アプリを作成し、 「名前をつけて保存」させるために、GetSaveFileNameを利用しているのですが、 VISTA以降で、ファイル名を入力し、「保存」ボタンを押すと、 COMDLG32.dllのexception(C0000005)エラーが発生してしまい、 強制終了してしまいます。 XPでは問題ないのですが、原因がわかりません。 他HP等で検索しても該当する内容がなかったために、質問させていただきます。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yuipu
- ベストアンサー率38% (18/47)
回答No.3
lpofnの要素lpstrFile にはファイル名を格納するバッファアドレスを指定しますが、初期値を持たない場合、そのバッファはゼロで初期化していますか(少なくとも先頭だけでも)? OPENFILENAME http://hp.vector.co.jp/authors/VA023539/tips/dialog/004.htm http://msdn.microsoft.com/ja-jp/library/ms646839.aspx
補足
lpstrFileに関しては、最初内部バッファを設定していたので、 それが悪さをしているのかと思い、 グローバルなバッファに変更しても同じでした。。。 その他の引数(OPENFILENAME )に関しても特に問題ないと思っています。 同じ様な設定で、GetOpenFileNameでは正常に動作するのですが・・・