动态连接库创建

最近在写接口程序,要使用到动态链接库。使用中遇到一些问题,现总结如下:
动态链接库创建,本程序是一个带窗体的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 

LIBRARY

EXPORTS
    ; 此处可以是显式导出
    ShowDlg

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值