0

VC++ 2010 に C++ プロジェクトがあり、プリコンパイル済みヘッダーなしで開始しました。正常に動作していましたが、MFC マルチスレッドを追加すると、afxmt.h で例外が発生し始めました。プリコンパイル済みヘッダーを使用して別のプロジェクトに afxmt.h を含めてテストしたところ、問題なく動作しました。

問題は、プリコンパイル済みヘッダーを持たないプロジェクトで MFC (afxmt.h) を動作させるにはどうすればよいかということです。または、プリコンパイル済みヘッダーを使用するものに変更する必要がありますか?

編集:

これらは例外です:

First-chance exception at 0x789394ea (mfc100ud.dll) in Quick_Test.exe: 0xC0000005: Access violation reading location 0x00000000.
Unhandled exception at 0x77b015de in Quick_Test.exe: 0xC0000005: Access violation reading location 0x00000000.

これらは、空のプロジェクト (プリコンパイル済みヘッダーなし) で発生します。そのためのコードは次のとおりです。

#include "afxmt.h"
4

2 に答える 2

1

デフォルトでは、プリコンパイル済みヘッダー ファイルは stadfx.h で、他にもいくつかのインクルードがあります。プリコンパイル済みヘッダーを使用していない場合は、コードで使用するすべての関数宣言を含むファイルを手動で含める必要があります。

于 2012-10-19T12:53:48.697 に答える
1

プリコンパイル済みヘッダーを使用するプロジェクトは、#include afxmt.h; を自動的に挿入します。すべてのソースファイルのコンパイルプロセスに。プリコンパイル済みヘッダーを使用していない場合は、そのヘッダーを必要とする処理を行っているすべてのソース ファイルに #include を追加する必要があります。

于 2012-10-19T12:42:32.007 に答える