首页 > 代码库 > 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并在其中使用对话框、引入类的操作