我正在尝试编译一个没有依赖关系的简单CLR项目。
当我编译这个项目时,我得到了973个警告(C4945),说明
c:\windows\microsoft.net\framework\v4.0.30319\system.dll : warning C4945: 'xxx' : cannot import symbol from 'c:\windows\microsoft.net\framework\v4.0.30319\system.dll': as 'xxx' has already been imported from another assembly 'System'
正如我提到的,我的项目不依赖于其他项目,我尝试逐个编译我的cpp文件,从stdafx.cpp开始。
在执行此操作时,我注意到如果我包含#include <msclr\marshal.h>
,我会收到这些警告,如果我没有警告,则会发出警告。
现在我有以下问题。
答案 0 :(得分:0)
对于VS2019来说,这仍然是一个问题,但是您可以强制标题跳过#using <System.dll>
,如下所示:
#pragma push_macro("_CRT_WINDOWS") #define _CRT_WINDOWS #include <msclr\marshal.h> #pragma pop_macro("_CRT_WINDOWS")
这也适用于其他元帅标头(marshal_cppstd.h
等)