は、私はそれを実行する場合は罰金コンパイルしても問題なく動作しますが、私はVStudio.Butからそれを実行する場合にのみ、CWinAppのclass.Itでダイアログをceateすることです直接実行時エラーが発生し、プログラムがクラッシュしました。奇妙な問題MFCのC++
CMyDialog dlg;
m_pMainWnd = (CWnd*)&dlg;
dlg.DoModal();
しかし、私が下のコードを使用した場合、すべてが問題ありません。この動作は分かりません。
CMyDialog *dlg=new CMyDialog();
m_pMainWnd = (CWnd*)dlg;
dlg->DoModal();
このタイプのものは、他の過去のC++(非MFC)プロジェクトでも何度も起こりました。 これを私に指定してください。
問題が発生した場合、最初のケースからコールスタックを送信できますか? –
私は実際に問題を理解しましたが、ここではコールスタックです(リリースモードでのエラーのみ)。 > \t ntdll.dllの!7c911e58()\t \t [フレームは、以下の間違ったおよび/または欠落している可能性があり、ntdll.dllのためにロードされていないシンボル] \t \t ntdll.dllの!7c918251()\t \t ntdll.dllの!7c911c76 ()\t \t ntdll.dllの!7c911538()\t \t ntdll.dllの!7c9106eb()\t \t ntdll.dllの!kernel32.dllの!7c801a24()\t \t 7c9140bb()\t \t kernel32.dllの!7c801a4f()\t \t ntdll.dllの!7c90e234()\t \t kernel32.dllの!7c8110db()\t \t ...他また、コメントサイズStackOverflowのオーバーフロー \t ... – YAHOOOOO
このような場合、私は通常、クラッシュ直後に "デバッグ"を選択します。 Visual StudioがDEBUGバージョンで開かれていると仮定すると、実行ファイルをダブルクリックしても、クラッシュ後にプログラムをデバッグして問題の最下部に到達することができます。 –