首页 > 代码库 > 2015.3.3 VC++6制作MFC dll并在其中使用对话框、引入类的操作

2015.3.3 VC++6制作MFC dll并在其中使用对话框、引入类的操作

上例建立的dll为非MFC的,不能使用MFC框架,如CString、对话框等类型,使用起来有一定限制。可以建立MFC的Dll来改进。建立MFC Dll的方法:

1、在VC6中新建工程时选择:MFC AppWizard(dll)

2、保持默认的 Regular Dll using shared MFC DLL完成。

3、此时生成的App具有.h .cpp两个文件,与上面只有.cpp有所不同

4、相同的是在.cpp文件中 添加函数

extern "C" __declspec(dllexport) void CalcCording(double& owei); //&符号对应VS调用时用out 或ref代替

{

函数体可以就写在这里,不用像上例中还另起篇幅写函数体

}

对话框的调用

1、在dll中正常添加Dialog类 如RegDia

2、关键,只能在外部函数中写调用语句,如:

extern "C" __declspec(dllexport) void Show()

{

AFX_MANAGE_STATE(AfxGetStaticModuleState()); //这句也很必要

Reg regd;

regd.DoModal();

}

此外部函数可以由exe调用或者dll内的其它外部函数调用,但是不能由dll自身直接调用。

 

//VC6备忘知识:

1、VC6添加类文件到工程与Office Viso2007冲突,只有卸载viso2007后才能正常添加文件进工程

2、VC6被引用函数必须写在引用函数之前

3、读取硬件信息类GetHardSoftInfo无需添加Link,直接将类文件添加进dll工程即可,但只支持MFC dll。

2015.3.3 VC++6制作MFC dll并在其中使用对话框、引入类的操作