Win32プログラムを作成しています。
ダイアログボックスを表示させる必要が出てきたので、
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_FORMVIEW) ,hWnd, DlgProc);
と実行したのですが、この関数が失敗し、GetLastError()でエラーを調べたところ"指定されたリソースの種類は、イメージ ファイルに見つかりません。"という内容の1813が返ってきました。
どこが間違い部分なのか見当がつかず、どこの内容を示せばいいのかもわからないので、「何々の部分はどうなっているか」という質問も受けます。
何がまずいのかわかる方、ご教授お願いします。
環境はVC2005Standard, Xp
No.2ベストアンサー
- 回答日時:
★アドバイス
・GetModuleHandle(NULL)
の代わりに
GetWindowLongPtr(hWnd,GWL_HINSTANCE)
を使ってみたらどうなりますか?
HINSTANCE hInst = (HINSTANCE)GetWindowLongPtr(hWnd,GWL_HINSTANCE);
DialogBox( hInst, MAKEINTRESOURCE(IDD_FORMVIEW), hWnd, DlgProc );
試して見て下さい。
うまく行きましたので、解決報告をします。
DllMainの引数hModuleをHINSTANCEにキャストした値と、GetModuleHandle(NULL)で取得した値が違うので、hModuleの方を使用したところ万事うまく行きました。
Oh-Orange様、Wr5様、新年早々ありがとうございました。
No.1
- 回答日時:
>DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_FORMVIEW) ,hWnd, DlgProc);
>と実行したのですが、この関数が失敗し、GetLastError()でエラーを調べたところ"指定されたリソースの種類は、イメージ ファイルに見つかりません。"という内容の1813が返ってきました。
リソースエディタで、「IDD_FORMVIEW」というIDのついたダイアログボックスのリソースは追加済み…ですよね?
"IDD_FORMVIEW"というIDになっていたりはしないでしょうか?
その場合はMAKEINTRESOURCE()は不要になりますが。
この回答への補足
IDはIDD_FORMVIEWです。"IDD_FORMVIEW"ではないです。
リソースファイルも追加しています。
内容説明が足りなかったので、追加します。
・DLLです。
・プロパティのリンカ/出力ファイルがデフォルトでなく、まったく関係ないディレクトリに設定してあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- HTML・CSS htmlについて質問です コードを打ったあと画像が表示されないので調べる svg ファイルが写真のよ 1 2023/07/11 10:53
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- ドライブ・ストレージ vhdxファイルからのデータの取り出し方 4 2023/06/14 23:53
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FF11が強制終了に・・・
-
PowerShellを使って関連付けら...
-
DisplayAlertsブロパティで ”実...
-
cube PDFについて
-
gccを行ってもexeファイルが生...
-
ASPからACCESSのOPENどうしても...
-
ファイル アクセス権のエラーの...
-
FORTRANの実行エラーについて
-
画像読み込み失敗の判定
-
NAS上のファイルの使用中が解除...
-
ADOを使用してExcelファイルを...
-
EXCEL VBAで複数人でのADO接続...
-
「パス名が無効です」の発生原因
-
freadでデータがない場合の読込...
-
batファイルでレジストリキーの...
-
エクセル VBA dll 読み込...
-
EXCELVBAでONEDRIVE上への保管...
-
FTPの送信結果を検知したい
-
Adobeのプレミアプロの書き出し...
-
RAR圧縮ファイル(分割)の順番が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBでファイルが開かれているか...
-
batファイルでレジストリキーの...
-
gccを行ってもexeファイルが生...
-
「パス名が無効です」の発生原因
-
Returnに対するGoSubがありません
-
アクセスのクエリでコンパイル...
-
NAS上のファイルの使用中が解除...
-
VBから参照できないCのDLLを使...
-
PowerShellを使って関連付けら...
-
Adobeのプレミアプロの書き出し...
-
EXCELのVBAでWORDが開いてある...
-
FTPの送信結果を検知したい
-
access テキストボックスの値取得
-
エクセルマクロでエラーの原因...
-
【COBOL】read文でエラー
-
VB6 Dir関数で52エラー発生
-
VBA ExecuteExcel4Macro 型が一...
-
Access2013にてドラッグ&ドロ...
-
freadでデータがない場合の読込...
-
ファイルクローズ(fclose)でエ...
おすすめ情報