http://support.microsoft.com/kb/q173974/
===========================
HOWTO: 给 ATL 项目添加 MFC 支持
| 文章编号 | : | 173974 |
| 最后修改 | : | 2004年1月21日 |
| 修订 | : | 2.0 |
本文的发布号曾为 CHS173974
概要
当使用 AppWizard 创建 ATL EXE 项目时,MFC 支持复选框未被选中。 本文讲述如何将 MFC 支持添加到 ATL EXE 项目中。 本文还解释了如果在 AppWizard 中最初不能选中“Support MFC”复选框,如何给 ATL DLL 项目添加 MFC 支持。
更多信息
给 ATL EXE 项目添加 MFC 支持
| 1. | 在包括 Atlbase.h 之前,将以下 #include 指令添加到 StdAfx.h: |
| 2. | 更改项目设置以使用 MFC。 在 Project Settings 对话框中,单击 General 选项卡,然后将 Microsoft Foundation Classes 列表框中的设置更改为 MFC。 |
| 3. | 添加 CWinApp 衍生类,并声明一个该类型的全局变量,如下所示: |
| 4. | 用以下 InitInstance 和 ExitInstance 代码替换 _tWinMain 函数: |
| 5. | 对于 Unicode 版本,请确保进入点被设置为 wWinMainCRTStartup,该设置在 Project Settings 对话框中 Link 字段的 Output 类别中。 有关其它信息,请参见 Microsoft Knowledge Base 中的下列文章:
125750
(http://support.microsoft.com/kb/125750/EN-US/) PRB: 错误 LNK2001: “_WinMain@16”: 不能解析的外部符号
|
| 6. | 将以下代码行添加到 COM 接口、窗口过程和导出函数的每个成员函数的开头: 有关 AFX_MANAGE_STATE 的详细信息,请查询 VC++ 联机文档。 |
181505
(http://support.microsoft.com/kb/181505/EN-US/) PRB: ATL COM AppWizard 不提供对 .EXE 的 MFC 支持
将 MFC 支持添加到 ATL DLL 项目
执行上面的步骤 1 到步骤 3。
| 1. | 将 AppWizard 生成的 DllMain 的 DLL_PROCESS_ATTACH 和 DLL_PROCESS_DETACH 中的代码移到 CMyApp 的 InitInstance 和 ExitInstance,并删除 DllMain,如下所示: |
| 2. | 将以下代码行添加到 COM 接口、窗口过程和导出函数的每个成员函数的开头: 有关其它信息,请参见 Microsoft Knowledge Base 中的下列文章:
140850
(http://support.microsoft.com/kb/140850/EN-US/) HOWTO: 转换 DLLTRACE 以使用共享库中的 MFC
|
当使用 ClassWizard 将一个从 MFC 类衍生的类添加到 ATL EXE 项目或 ATL DLL 项目时,如果没有“MFC 支持”,编译器将发出 C2504 错误消息。
参考
MFCATL 示例附带在 Visual C++ 5.0 中。
本文介绍如何为ATL EXE和DLL项目添加MFC支持,包括配置项目设置、添加CWinApp派生类及全局变量、调整入口函数等步骤。

回到顶端

2422

被折叠的 条评论
为什么被折叠?



