Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 你如何判断一个C++;Visual Studio 2012中的动态库是托管的还是非托管的?_C++_.net_Visual Studio 2012 - Fatal编程技术网

C++ 你如何判断一个C++;Visual Studio 2012中的动态库是托管的还是非托管的?

C++ 你如何判断一个C++;Visual Studio 2012中的动态库是托管的还是非托管的?,c++,.net,visual-studio-2012,C++,.net,Visual Studio 2012,也许这可能是个愚蠢的问题,但我想不出来。我知道托管代码和非托管代码之间的区别,但我得到了一个C++ .NET解决方案,我无法确定C++项目是被管理还是非托管。 事实上,我并不认为这是可以管理的 查看属性,我可以配置MFC的使用(=使用标准Windows库)、ATL的使用、配置类型(动态库)等等 程序集实际上是一个环绕式非托管C代码(lib),其中一个cpp将C函数导出到C托管代码。查看“项目属性”对话框的“配置属性”节点。在该部分中有一个名为“公共语言运行时支持”的项目。非托管项目将具有值无公共

也许这可能是个愚蠢的问题,但我想不出来。我知道托管代码和非托管代码之间的区别,但我得到了一个C++ .NET解决方案,我无法确定C++项目是被管理还是非托管。 事实上,我并不认为这是可以管理的

查看属性,我可以配置MFC的使用(=使用标准Windows库)、ATL的使用、配置类型(动态库)等等


程序集实际上是一个环绕式非托管C代码(lib),其中一个cpp将C函数导出到C托管代码。

查看“项目属性”对话框的“配置属性”节点。在该部分中有一个名为“公共语言运行时支持”的项目。非托管项目将具有值无公共语言运行时支持,否则该项目将被管理

此设置对应编译器选项。

托管的C++项目实际上是使用.NET<强>公共语言运行时(CLR)>的强> C++ +CLI<强>项目。这在Visual Studio中用编译开关中的

/clr
表示

有关详细信息,请参阅MSDN上的


还请注意,Microsoft通知您“甚至可以在同一文件中逐个函数地决定托管编译和非托管编译”。有关这方面的更多详细信息,请参见MSDN。

尝试使用中间语言反汇编程序ildasm查看程序集内部,它告诉我它没有有效的CLR。所以它显然是不受管理的…好吧,看到了。切换到/clr似乎很简单。这样做时,会有很多错误。我并没有说你可以接受任何有效的C++程序,只要把它扔进微软,并用<代码> /CLR < /code >开关标记它,它就可以自动地被“托管代码”。在你做了一些研究之后,也许你可以问一些关于你使用的错误是什么,当你尝试使用<代码> /CLR < /代码>时,LievenCardoen你只问你怎么知道VisualStudio 2012中的C++动态库是被管理还是非托管的?我相信你对这个问题有答案是的,事实上,没有恐慌,那只是我的问题,谢谢。但不能将你们两人都标记为正确。@DavidHeffernan的问题实际上更具体,所以我认为你们应该接受这一点:)