创建项目
创建MFCDLL项目
MFC项目中这么声明
生成dll工程
可以看到库文件的生成目录,保存下来
创建测试用c#项目
我们创建一个按钮调用我们刚才的函数
这边这么调用MFC库的函数入口。这里并不是com控件,所以不能直接从引用里面拉进来。
否则会报 未能添加引用,请确保此文件可访问并且是一个有效的程序集或COM组件。 错误 ![2016-04-04_221955[4] 2016-04-04_221955[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104241656-578399794.jpg)
添加using
调用方式就像类的静态方法
这里看到设置的入口函数和声明的不一样。
所以会报错
我们把入口 entryPoint修改一下。或者删掉。只要保持和库那边设置一致即可
效果如下
现在我们添加MFC的窗口
在声明出使用doModel的原因是退出函数这里会释放资源。如果show会出错
C#方面这样调用
成功显示窗口
在跨语言调用中,有可能会出现消息队列不一致问题。这里测试一下。在不乱设置的情况下。窗口消息响应
我们在MFC中设置一个按钮消息
运行可以正常显示
消息是能正常处理的
![2016-04-04_220827[4] 2016-04-04_220827[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104231734-1017618862.png)
![2016-04-04_221051[4] 2016-04-04_221051[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104233687-1180248633.jpg)
![2016-04-04_221323[4] 2016-04-04_221323[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104234828-268566001.jpg)
![2016-04-04_221339[4] 2016-04-04_221339[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104236109-890246319.jpg)
![2016-04-04_221723[4] 2016-04-04_221723[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104237281-1235632976.jpg)
![2016-04-04_221808[4] 2016-04-04_221808[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104238765-2023627752.jpg)
![2016-04-04_221848[4] 2016-04-04_221848[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104239890-1597639225.jpg)
![2016-04-04_222010[4] 2016-04-04_222010[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104243125-1118494299.jpg)
![2016-04-04_222123[4] 2016-04-04_222123[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104244297-869520729.jpg)
![2016-04-04_222205[4] 2016-04-04_222205[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104245578-418004421.jpg)
![2016-04-04_222320[4] 2016-04-04_222320[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104247109-593736864.jpg)
![2016-04-04_222349[4] 2016-04-04_222349[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104248687-2122043934.jpg)
![2016-04-04_222450[4] 2016-04-04_222450[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104249937-336526044.jpg)
![2016-04-04_222530[4] 2016-04-04_222530[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104251203-974156653.jpg)
![2016-04-04_222723[4] 2016-04-04_222723[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104252765-1925035461.jpg)
![2016-04-04_222746[4] 2016-04-04_222746[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104254047-1349509411.jpg)
![2016-04-04_222833[4] 2016-04-04_222833[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104255500-415513739.jpg)
![2016-04-04_230810[4] 2016-04-04_230810[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104256906-608593449.jpg)
![2016-04-04_231142[4] 2016-04-04_231142[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104258187-255084182.jpg)
![2016-04-04_231205[4] 2016-04-04_231205[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104259531-536499821.jpg)
![2016-04-04_231224[4] 2016-04-04_231224[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104300718-512909031.jpg)
![2016-04-04_232241[4] 2016-04-04_232241[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104302125-1883820323.jpg)
![2016-04-04_232250[4] 2016-04-04_232250[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104303343-1313998214.jpg)
![2016-04-04_232947[4] 2016-04-04_232947[4]](https://images2015.cnblogs.com/blog/473183/201604/473183-20160405104305125-818915819.jpg)