引言
应客户需求,客户端已有MFC的程序,即C++代码,需要调用另一个第三方库Dll的功能,然而此Dll是C#动态链接库,无法直接调用,经过研究需要以下动作。以示例讲解:
配置工程属性
右键MFC工程属性,如图所示:
1、修改配置属性->高级->公共语言运行时支持,选择“公共语言运行时支持(/clr)”;
2、.NET目标框架版本,设置 4.5.2(也可以不选,只是为了方便引用 C# 工程,设置不对的话会报引用工程版本不兼容)。

编写C#类库
创建C#类库工程,编写示例:
namespace MyClassLibrary
{
public class ClassA
{
public int Add(int x, int y)
{
return x + y;
}
public string Say()
{
return "Hello C#";
}
}
}
引用C#类库
1、添加工程引用:

2、配置MFC工程编译选项:

调用C#类库
1、在MFC代码文件头引用C#空间:
using namespace MyClassLibrary;
2、添加一个简单的Button事件:
void CMfcCallCsharpDlg::OnBnClickedButtonCallCsharp()
{
ClassA^ myClass = gcnew ClassA();
CString res = myClass->Say();
MessageBox(res, _T("标题"), MB_OK);
}
3、注意CLR托管类的使用需要带尖号“^”。
结束语
最简洁的MFC调用C#示例,其他情况 C++ 调用 C# 类似,源码包就不用上传了,有需要的直接@,仅供快速参考。
注:开发工具 VS2019
文章介绍了如何在MFC(C++)项目中调用C#编写的DLL。首先需配置MFC工程属性,启用公共语言运行时支持(/clr)并设置.NET目标框架。然后创建C#类库,编写接口函数。接着在MFC工程中引用C#类库,处理Button事件以调用C#方法。这是一个简单的MFC与C#互操作示例。

2956

被折叠的 条评论
为什么被折叠?



