如何创建使用AFX库的混合模式CLR.NET DLL? 我试图创建一个混合模式(托管和非托管)C++ CLL,其中CLR选项,我需要使用AFX库。所以我在一个文件中包含了“afxwin.h”(使用GL/GL.h)。 然而,无论我做什么,我都会遇到编译错误,我尝试了项目设置中的每个选项来修复它们,但没有任何用处

如何创建使用AFX库的混合模式CLR.NET DLL? 我试图创建一个混合模式(托管和非托管)C++ CLL,其中CLR选项,我需要使用AFX库。所以我在一个文件中包含了“afxwin.h”(使用GL/GL.h)。 然而,无论我做什么,我都会遇到编译错误,我尝试了项目设置中的每个选项来修复它们,但没有任何用处,c++,.net,visual-studio-2010,clr,afx,C++,.net,Visual Studio 2010,Clr,Afx,A.当我使用CLR选项编译时,我看到此错误(当它编译包含afwin.h的文件时): 1> c:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afx.h(24):致命错误C1189:#错误:使用/MD[d](CRT dll版本)构建MFC应用程序需要MFC共享dll版本。请定义或不使用/MD[d] B.当我使用stdafx.cpp中定义的_afxdell进行编译或启用“在共享DLL中使用MFC”来解决a中的错误

A.当我使用CLR选项编译时,我看到此错误(当它编译包含afwin.h的文件时):

1> c:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afx.h(24):致命错误C1189:#错误:使用/MD[d](CRT dll版本)构建MFC应用程序需要MFC共享dll版本。请定义或不使用/MD[d]

B.当我使用stdafx.cpp中定义的_afxdell进行编译或启用“在共享DLL中使用MFC”来解决a中的错误时,我在同一个文件中看到了这些错误和所有其他错误:

1> \u WIN32\u未定义WINNT。默认为_WIN32_WINNT_MAXVER(请参阅WinSDKVer.h) 1> c:\ProgramFiles(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(46):错误C2059:语法错误:'-' 1> c:\ProgramFiles(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(60):错误C2143:语法错误:缺少“;”在“}”之前 1> c:\program files(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(60):错误C2238:在“;”之前出现意外标记 1> c:\ProgramFiles(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(61):错误C2059:语法错误:“public” 1> c:\ProgramFiles(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(65):错误C2059:语法错误:')' 1> c:\program files(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(65):错误C2589:“-”:在“:”右侧的非法令牌 1> c:\ProgramFiles(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(65):错误C2059:语法错误:':' 1> c:\ProgramFiles(x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(67):错误C2143:语法错误:缺少“;”在“{”之前


关于如何解决这个问题有什么想法吗?我正在使用VS 2010。

之后将MFC选项更改为“在共享DLL中使用MFC”并不是那么简单,您可能需要更改其他选项

最简单的方法是使用向导创建一个新的虚拟MFC项目,并比较两个项目的项目属性


ReCr,我的工作是把所有托管C++代码放在一个或两个源中,只打开那些源而不是整个项目。

谢谢爱德华。我能找出与你提到的类似的修复。事实上,我有一个方便的完整的MFC项目,它的设置和文件我比较了。我所要做的就是添加。在我的stdafx.h文件中加入了其他几个与afxwin相关的文件,瞧,它解决了编译问题!很高兴你和你自己解决了这个问题。在与全世界分享你的兴奋之后,也来分享你的想法和解决方案;)