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 回答