随着应用要求的不断提出,现有一套使用MFC开发的系统急需升级到.NET已扩展功能。但是,在画面处理、数据访问、报表处理方面,MFC与.NET都有一套实现的方法,想对原有这部分的处理功能提出来抽象出接口,用MFC与.NET分别实现之,达到完全继承原有功能并能拓展新功能的需求。具体的处理方法如下:
1. 新建MFC的DLL,导入需要处理的源程序,并 编译通过;
2. 修改Project的属性设置,使其支持CLR;
3. 建立新的命名空间和接口,将原有的class改称ref class, 同时做成用.NET实现的类如:
namespace MyComponent
{
public interface class IMyInterface
{
......
}
public ref class MyMFCClass : public IMyInterface
{
......
}
public ref class MyDotNetClass: public IMyInterface
{
......
}
}
4. 经过这样的处理后,原有的功能已经有两套实现了,在程序中就可以引用这个DLL了,并且对于原有的Source
只需做很小的改动,例如:
IMyInterface^ ClassFactory::GetMyClass()
{
if (m_type == "MFC") {