如何:使用 /clr 编译 MFC 和 ATL 代码

更新:2007 年 11 月

此主题讨论如何将现有 MFC 和 ATL 程序编译到目标公共语言运行库。

使用 /clr 编译 MFC 可执行文件或规则 DLL

  1. 打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。

  2. 展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。

    在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。

  3. 在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。

  4. 在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。

使用 /clr 编译 MFC 扩展 DLL

  1. 按照本节中上面的“使用 /clr 编译 MFC 可执行文件或规则 DLL”中的步骤进行操作。

  2. 执行下列操作之一:

    1. 在“配置属性”下,展开“C/C++”旁边的节点并选择“预编译头”。将“创建/使用预编译头”设置为“不使用预编译头”。

    2. 在“解决方案资源管理器”中,右键单击文件 stdafx.cpp 并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。

  3. 对于包含 DllMain 和其调用的任何内容的文件,打开该文件的“属性页”,方法是右键单击“解决方案资源管理器”中的文件并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。

使用 /clr 编译 ATL 可执行文件

  1. 打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。

  2. 展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。

  3. 在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。

  4. 在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。

  5. 对于每个 MIDL 生成的文件(C 文件),右键单击“解决方案资源管理器”中的文件并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。

使用 /clr 编译 ATL DLL

  1. 按照本节中上面的“使用 /clr 编译 ATL 可执行文件”中的步骤进行操作。

  2. 执行下列操作之一:

    1. 在“配置属性”下,展开“C/C++”旁边的节点并选择“预编译头”。将“创建/使用预编译头”设置为“不使用预编译头”。

    2. 在“解决方案资源管理器”中,右键单击文件 stdafx.cpp 并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。

  3. 对于包含 DllMain 和其调用的任何内容的文件,打开该文件的“属性页”,方法是右键单击“解决方案资源管理器”中的文件并选择“属性”。在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“具有公共语言运行库支持的编译”设置为“无公共语言运行库支持”。

请参见

概念

混合(本机和托管)程序集