如何:使用 /clr 编译 MFC 和 ATL 代码
更新:2007 年 11 月
此主题讨论如何将现有 MFC 和 ATL 程序编译到目标公共语言运行库。
使用 /clr 编译 MFC 可执行文件或规则 DLL
打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。
展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。
在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。
在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。
在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。
使用 /clr 编译 MFC 扩展 DLL
按照本节中上面的“使用 /clr 编译 MFC 可执行文件或规则 DLL”中的步骤进行操作。
执行下列操作之一:
在“配置属性”下,展开“C/C++”旁边的节点并选择“预编译头”。将“创建/使用预编译头”设置为“不使用预编译头”。
在“解决方案资源管理器”中,右键单击文件 stdafx.cpp 并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。
对于包含 DllMain 和其调用的任何内容的文件,打开该文件的“属性页”,方法是右键单击“解决方案资源管理器”中的文件并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。
使用 /clr 编译 ATL 可执行文件
打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。
展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。
在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。
在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。
对于每个 MIDL 生成的文件(C 文件),右键单击“解决方案资源管理器”中的文件并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。
使用 /clr 编译 ATL DLL
按照本节中上面的“使用 /clr 编译 ATL 可执行文件”中的步骤进行操作。
执行下列操作之一:
在“配置属性”下,展开“C/C++”旁边的节点并选择“预编译头”。将“创建/使用预编译头”设置为“不使用预编译头”。
在“解决方案资源管理器”中,右键单击文件 stdafx.cpp 并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。
对于包含 DllMain 和其调用的任何内容的文件,打开该文件的“属性页”,方法是右键单击“解决方案资源管理器”中的文件并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。