Visual studio 2010 无CLR支持C++;具有C+的项目+/CLI源文件 我们有一个VS2010 C++项目,在项目属性中有“强>没有公共语言运行时支持”。然后我看到它有一个包含一些托管代码的源文件,并且该文件的属性设置了“/clr”标志。因此,项目没有/clr标志,但其内部有一个文件。我不知道这是否会使该项目成为混合模式项目?我可以在ILDisassembler打开输出文件,这让我相信它确实是.NET程序集。 < P>这是完全正常的,一个C++/CLI项目非常常见地包含了本地C++和C++ +CLI源代码文件的混合。“常规设置”页面中的设置仅设置编译器将假定的默认值。但是为每个源文件打开它是非常有效和常见的 其他方法是将本地C++代码保存在单独的库项目中并链接它。或者通过使用#pragma managed在单个源代码文件中动态打开和关闭MSIL代码生成

Visual studio 2010 无CLR支持C++;具有C+的项目+/CLI源文件 我们有一个VS2010 C++项目,在项目属性中有“强>没有公共语言运行时支持”。然后我看到它有一个包含一些托管代码的源文件,并且该文件的属性设置了“/clr”标志。因此,项目没有/clr标志,但其内部有一个文件。我不知道这是否会使该项目成为混合模式项目?我可以在ILDisassembler打开输出文件,这让我相信它确实是.NET程序集。 < P>这是完全正常的,一个C++/CLI项目非常常见地包含了本地C++和C++ +CLI源代码文件的混合。“常规设置”页面中的设置仅设置编译器将假定的默认值。但是为每个源文件打开它是非常有效和常见的 其他方法是将本地C++代码保存在单独的库项目中并链接它。或者通过使用#pragma managed在单个源代码文件中动态打开和关闭MSIL代码生成,visual-studio-2010,visual-c++,c++-cli,clr,mixed-mode,Visual Studio 2010,Visual C++,C++ Cli,Clr,Mixed Mode,链接器不必被告知它,它可以从对象文件的内容中分辨出来。是的,您将得到一个混合模式.NET程序集。将C++/CLI位编译为MSIL,并将本地C++代码编译为机器代码。这意味着被认为是纯C++应用程序的应用程序是混合模式的,并且依赖于.NETFW。从技术上讲,这是不准确的。本地C++应用程序可以加载这样的DLL,并且使用正常的本地入口点,而不必加载.NETFramework。你的问题中没有任何暗示这是事实。使用调试器,查看其“调试>窗口>模块”窗口。如果您看到clr.dll或mscorwks.dll

链接器不必被告知它,它可以从对象文件的内容中分辨出来。是的,您将得到一个混合模式.NET程序集。将C++/CLI位编译为MSIL,并将本地C++代码编译为机器代码。

这意味着被认为是纯C++应用程序的应用程序是混合模式的,并且依赖于.NETFW。从技术上讲,这是不准确的。本地C++应用程序可以加载这样的DLL,并且使用正常的本地入口点,而不必加载.NETFramework。你的问题中没有任何暗示这是事实。使用调试器,查看其“调试>窗口>模块”窗口。如果您看到clr.dll或mscorwks.dll,那么您确实有一个.NET依赖项。没有单独的dll,只有一个项目的属性中没有设置\u clr,其中一个.cpp文件中设置了/clr。