2009-05-07 165 views
0

CDialogベースのウィンドウを作成する際に問題が発生します。コードは先週うまくいきました。私が行った唯一の変更は、C++ dequeをハッシュ配列で置き換えることでした。私はCreateメソッドを呼び出してウィンドウの読み込みをスキップできるようにコード行をコメントアウトしました。今度は、コードはウィンドウを作成しません。MFC CDialog :: Createは失敗します。

Create関数はfalseを返し、GetLastError関数は0を返します。ウィンドウ内には、チェックボックスとリストコントロールだけのカストムコントロールを使用しません。私が知る限り(私はこの時点でデバッガを接続することはできません)、OnCreate関数とOnInitDialog関数はまったく呼び出されていません。

私が作成し、関数の戻り値をテストするために使用してきた私は、以下のコードを貼り付けました

し、GetLastError

BOOL result = ORDER_HANDLER_GUI.Create(OrderHandlerGUI::IDD, AfxGetMainWnd()); 
int error = ::GetLastError(); 

if(result) 
    AfxMessageBox("Created GUI"); 
else 
{ 
    CString msg; 
    msg.Format("%d", error); 
    AfxMessageBox("Could not create GUI"); 
    AfxMessageBox(msg); 
} 

アップデート: 私は最終的にデバッガがアタッチ得ることができた(これは、ロードされたプラグインです何らかの理由でデバッガが気に入らなかったサードパーティのアプリケーションで)。コードをステップ実行した後、AfxGetMainWnd()がNULLを返すようです。私は今これについてより多くのテストをしています。

+0

エラーコードとは何ですか? – DavidK

+0

デバッガを接続できないのはなぜですか? –

答えて

1

問題は、CDynLinkLibrary()の呼び出しにあったようです。

私はプラグインをロードしているソフトウェアを書いている会社の要請でこれをコメントしました。この行を追加すると、まだ値がnullになりましたが、ウィンドウが正しく作成されました。

私はこれに関する少しの研究を行い、何かを見つけたら更新します。誰かが私よりもこれについてもっと知っているなら(難しいことではありません)、コメントを残して自由に感じてください。

0

問題を引き起こしている可能性のあるコントロールをダイアログで使用していますか?例えば、大統領?

+0

いいえ、チェックボックスとリストコントロールだけです。私もすべてのコントロールを削除し、クラス内のそれぞれのコードをコメントアウトして、まだ動作するCreate()を取得できませんでした。 – Noaki

関連する問題