我正在嘗試使用CLR選項創建混合模式(託管和非託管)C++ DLL,並且我需要使用AFX庫。所以我在文件中使用了「afxwin.h」(使用GL/gl.h)。 但是,無論我做什麼,我都遇到了編譯錯誤,我嘗試了項目設置中的每個選項來修復它們,但沒有用。如何創建使用AFX庫的混合模式CLR .NET DLL?
答:當我編譯CLR選項我看到這個錯誤(當它編譯包括afwin.h文件):
1> C:\ Program Files文件(x86)的\微軟的Visual Studio 10.0 \ VC \ atlmfc \ include \ afx.h(24):致命錯誤C1189:#error:使用/ MD [d]構建MFC應用程序(CRT dll版本)需要MFC共享dll版本。請#define _AFXDLL或不要使用/ MD [d]
B.當我用_AFXDLL在stdafx.cpp中定義或啓用「在共享DLL中使用MFC」進行編譯時,爲了解決A中的錯誤,我看到這些以及同一個文件中的其他大量錯誤:
1> _WIN32_WINNT未定義。默認爲_WIN32_WINNT_MAXVER(請參閱WinSDKVer.h) 1> c:\ program files(x86)\ microsoft visual studio 10.0 \ vc \ atlmfc \ include \ afxanimationcontroller.h(46):錯誤C2059:語法錯誤:' - ' 1 > c:\ program files(x86)\ microsoft visual studio 10.0 \ vc \ atlmfc \ include \ afxanimationcontroller.h(60):error C2143:syntax error:missing';'之前 '}' 1> C:\程序文件(86)\微軟的Visual Studio 10.0 \ VC \ atlmfc \包括\ afxanimationcontroller.h(60):錯誤C2238:意外的標記(一個或多個)之前 ';' (x86):錯誤C2059:語法錯誤:'公共' 1> c:\ program files(x86) \微軟的Visual Studio 10.0 \ VC \ atlmfc \包括\ afxanimationcontroller.h(65):錯誤C2059:語法錯誤: ')' 1> C:\程序文件(86)\微軟的Visual Studio 10.0 \ VC \ atlmfc \包括\ afxanimationcontroller.h(65):錯誤C2589: ' - ':上的右側非法令牌 '::' 1> C:\程序文件(86)\微軟的Visual Studio 10.0 \ VC \ atlmfc \包括\ afxanimationcontroller。 H(65):錯誤C2059:語法錯誤: '::' 1> C:\程序文件(86)\微軟的Visual Studio 10.0 \ VC \ atlmfc \包括\ afxanimationcontroller.h(67):錯誤C2143:語法錯誤: 失蹤 ';'前「{」
關於如何解決這個問題的任何想法?我正在使用VS 2010.
謝謝愛德華。我能夠找出類似於你所提到的解決方案。實際上,我確實有一個方便的完整MFC項目,其設置和文件與我比較。我所要做的就是將其他幾個afxwin相關文件添加到我的stdafx.h文件中,並解決了編譯問題! –
不錯,你已經解決了你和你的自我。如何與世界分享你的興奮之後,分享也是解決方案;) – SoLaR