C# 调用 MFC DLL

时间:2022-03-10 08:03:23

创建项目

C# 调用 MFC DLL

创建MFCDLL项目

C# 调用 MFC DLL

MFC项目中这么声明

C# 调用 MFC DLL

生成dll工程

C# 调用 MFC DLL

可以看到库文件的生成目录,保存下来

C# 调用 MFC DLL

创建测试用c#项目

C# 调用 MFC DLL

我们创建一个按钮调用我们刚才的函数

C# 调用 MFC DLL

这边这么调用MFC库的函数入口。这里并不是com控件,所以不能直接从引用里面拉进来。

否则会报  未能添加引用,请确保此文件可访问并且是一个有效的程序集或COM组件。 错误
C# 调用 MFC DLL

添加using

C# 调用 MFC DLL

调用方式就像类的静态方法

C# 调用 MFC DLL

这里看到设置的入口函数和声明的不一样。

C# 调用 MFC DLL

所以会报错

C# 调用 MFC DLL

我们把入口 entryPoint修改一下。或者删掉。只要保持和库那边设置一致即可

C# 调用 MFC DLL

效果如下

C# 调用 MFC DLL

现在我们添加MFC的窗口

C# 调用 MFC DLL

C# 调用 MFC DLL

C# 调用 MFC DLL

C# 调用 MFC DLL

在声明出使用doModel的原因是退出函数这里会释放资源。如果show会出错

C# 调用 MFC DLL

C# 调用 MFC DLL

C#方面这样调用

C# 调用 MFC DLL

成功显示窗口

C# 调用 MFC DLL

在跨语言调用中,有可能会出现消息队列不一致问题。这里测试一下。在不乱设置的情况下。窗口消息响应

C# 调用 MFC DLL

我们在MFC中设置一个按钮消息

C# 调用 MFC DLL

运行可以正常显示

C# 调用 MFC DLL

消息是能正常处理的

C# 调用 MFC DLL