动态连接库创建

来源:互联网 发布:腾讯软件管理下载 编辑:程序博客网 时间:2024/05/17 04:21

最近在写接口程序,要使用到动态链接库。使用中遇到一些问题,现总结如下:
动态链接库创建,本程序是一个带窗体的MFC的动态链接库,使用.def方式导出,方便后期使用:动态链接库 静态调用的方式使用。
1,新建动态链接库项目,项目属性:
这里写图片描述

注意其中的:配置类型,mfc的使用
2,新建窗体
在资源视图中添加窗体资源,
3,添加窗体类
在资源视图,窗体界面 右键 添加类,
这里写图片描述
同时完善窗体设计,添加代码

void cDialog::OnBnClickedButton1(){    // TODO: 在此添加控件通知处理程序代码    AfxMessageBox(_T("调用成功"));}

4,修改主项目代码,:注意,不是窗体类代码
4.1,头文件修改(*.h),引入资源文件

      #include "resource.h"     // 主符号

4.2修改源文件(*.cpp,如MFCdll.cpp)

//引入窗体# include "cDialog.h"  //定义输出库函数,以被MFC程序调用  //extern "C" __declspec(dllexport) void ShowDlg(void) extern "C"  void _stdcall ShowDlg(void) //def 模式,推荐使用{    //必须:添加AFX_MANAGE_STATE宏,进行DLL模块状态资源的切换      AFX_MANAGE_STATE(AfxGetStaticModuleState());    //创建DLL对话框      cDialog dllDialog;    dllDialog.DoModal();}

4.3修改 *.def文件

; MFCdll.def : 声明 DLL 的模块参数。如果要将函数确定不能使用动态调用,需要在函数名称后加 private 修饰(private修饰的作用是:禁止将 entryname 包含在由 LINK 生成的导入库中。这就决定了导出函数只能进行动态调用,因为它没有被编译进导出库文件中)。如:ShowDlg   private LIBRARYEXPORTS    ; 此处可以是显式导出    ShowDlg

编译完成!!(因为不是可执行程序,编译结束会报错)

0 0
原创粉丝点击