怎样在MFC中调用C#编写的DLL

2025-04-23 12:30:11
推荐回答(1个)
回答1:

2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。 4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。 5、在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。二、在代码引用需要的dll#using #using "DownloaFiles.dll" //换成需要的dll文件using namespace System;using namespace CGistarMath;//换成dll中类所使用的namespace三、在dll函数调用代码前加入#pragma managed这是manage和unmanage混合编程在MFC下的一种实现方式。 以下是我自己碰到的问题的总结: 当我在声明一个变量的时候,是在.H文件的类里面声明: CGistarMath^ CSPro;但是编译的时候会出现这个错误:error C3265: 无法声明托管“CSPro”(在非托管“CMathCPPDlg”中) 不能声明全局或静态变量,也不能声明引用 gc 堆中对象的本机类型成员因此,我只能讲CGistarMath^ CSPro修改成 CGistarMath^ CSPro = gcnew CGistarMath();并且放入函数的实现当中,才将该问题解决,但是有个缺点就是需要使用到该DLL的函数都要自己生面一个对象,比较麻烦,也容易造成资源浪费,因此不只你们有没有其他好的办法呢??