如何创建一个使用AFX库的混合模式CLR . net DLL
How to create a mixed mode CLR .NET DLL that uses AFX libraries?
我试图创建一个带有CLR选项的混合模式(托管和非托管)c++ DLL,我需要使用AFX库。因此,我将"afxwin.h"包含在一个文件中(使用GL/GL .h)。然而,无论我做什么,我都会遇到编译错误,我已经尝试了项目设置中的每个选项来修复它们,但没有用。
。当我用CLR选项编译时,我看到这个错误(当它编译包含afwin.h的文件时):
1>c:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfcincludeafx.h(24):致命错误C1189: #error: Building MFC application with/MD[d] (CRT dll版本)需要MFC共享dll版本。请#define _AFXDLL,否则不要使用/MD[d]
B。当我用stdafx.cpp中定义的_AFXDLL编译或启用"在共享DLL中使用MFC",以解决a中的错误时,我看到这些和同一文件中的其他一大堆错误:
1> _WIN32_WINNT未定义。默认为_WIN32_WINNT_MAXVER(参见WinSDKVer.h)1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(46): error C2059:语法错误:'-'1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(60):错误C2143:语法错误:在'}'之前缺少';'1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(60):错误C2238:意外的token(s)前面的';'1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(61): error C2059:语法错误:'public'1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(65): error C2059:语法错误:')'1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(65):错误C2589: '-':':'右边的非法标记1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(65): error C2059:语法错误:'::'1>c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafxanimationcontroller.h(67):错误C2143:语法错误:在"{"之前缺少";"
对如何解决这个问题有什么想法吗?
将MFC选项更改为"在共享DLL中使用MFC "并不是那么简单,您可能需要更改其他选项。
最简单的方法是使用向导创建一个新的虚拟MFC项目,并比较两个项目的项目属性。
Re CLR,对我来说有效的是将所有托管的c++代码放在一个或两个源中,并仅为这些源而不是整个项目打开/CLR。
- OpenCV 混合模式实现:为什么看似等效的操作会产生不同的结果?
- 混合模式程序集是针对版本 'v2.0.50727' 构建的 ...本机C++/Visual C++/C# 项目错误
- Visual Studio混合模式调试是否可以附加到Jupyter笔记本以同时调试C++和Python
- 如何链接到C++/Cli混合模式dll中的本机类
- 调试混合模式应用程序(C# 和非托管 C++)时"The breakpoint will not currently be hit"错误
- 混合模式程序集(C++/CLI项目)在.NET Core上工作吗
- 如何处理混合模式项目中的打印
- c++ (Direct2D) 中的混合模式
- 链接到混合模式dll中的presentationcore.dll
- 通过混合模式c++ /CLI DLL从ETL工具中使用托管c# DLL -可能
- 内存管理在c++混合模式下的应用
- 如何将使用boost::asio的本地c++静态库导入CLI/ c++混合模式应用程序?
- 卸载混合模式组件
- 从混合模式c++项目中的CLR-to-SEH异常中获取明智的信息
- 用于混合模式项目的内存泄漏检测:托管、非托管和本机
- 在新托管线程中通过 C# 在混合模式程序集中调用 STL 矢量的push_back
- 正在尝试转换混合模式的公式
- 正在尝试转换混合模式的公式
- VS2010 中使用 .NET 3.5 的混合模式调试
- 使用本机C++、托管 C++ CLI 和 C# 解决方案在混合模式下进行调试