天天看点

mfc与c#混合编程

在mfc中调用c# dll主要有两种方式:

1. 将mfc 工程编译为支持clr,这样就可以直接调用C# dll

2. 将c# dll做成com

现在主要讲第一种方法,如果原有mfc工程非常庞大,不能编译 /clr时应该怎么办?此时可新建一个类用来封装C# dll,然后单独对这个类 编译

为/clr 。如:

新建CInterop类,文件名为Interop.h 和Interop.cpp ,选中Interop.cpp ,右键->属性->c/c++ ,选择公共语言运行库支持(/clr),调试信息格式

为/Zi。不使用预编译头,启用c++ 异常为/EHa。

在CInterop中引用c#dll,增加一个函数test,里面调用c#dll中的方法。然后mfc中调用CInterop中的test函数实现调用c#dll。

使用此方法可以将一些对性能要求不高的模块用c#来实现,提高开发效率。