3

以下のように、MFC アプリにダイアログ ボックスを作成しました。

BackfaceControlPoints *controlpoints = new BackfaceControlPoints();

コントロールポイント->Create(BackfaceControlPoints::IDD);

コントロールポイント->ShowWindow(SW_SHOWNORMAL);

コンパイルはうまくいきますが、アプリを実行しようとすると、ダイアログを作成しようとしているときにデバッグ アサーションが発生します。

以下は、デバッグ アサーションを取得している dlgcore.cpp の行です。

if (!_AfxCheckDialogTemplate(lpszTemplateName, FALSE))

{ アサート (偽); // 無効なダイアログ テンプレート名

このプロジェクトには別のdllを使用しており(ソリューションのメインプロジェクトからロードするため)、「静的lubraryでmfcを使用する」オプションを使用しています。私を助けてください。ありがとう。

4

1 に答える 1

4

通常、このエラーは、MFC がリソース内でダイアログを見つけられない場合に発生します。MFC ライブラリを作成し、それらとアプリを静的にリンクしているように聞こえるので、プロジェクトは少し奇妙に聞こえますか?

controlpoints->Create() を呼び出す前に、ダイアログ リソースを含む DLL の HINSTANCE を指定して AfxSetResourceHandle() を呼び出します。奇妙なリソース関連のエラーが発生し始めた場合は、呼び出し後に元の状態にリセットすることをお勧めします。

于 2012-06-21T17:44:35.377 に答える