预编译的标题有多少影响MFC

How much precompiled headers affect mfc?

本文关键字:多少 影响 MFC 标题 编译      更新时间:2023-10-16

我在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"

使用预编译标头的项目自动插入#include afxmt.h;进入每个源文件的编译过程。如果您不使用预编译标头,则需要将#include添加到每个需要该标头的源文件中。

默认情况下,预编译的标头文件是stadfx.h,其中还有其他几个。您需要手动包含包含您在代码中使用的所有函数声明的文件,如果您不使用预编译标题。