找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 11540|回复: 0
收起左侧

VC++学习之---MFC程序与调用DLL文件

[复制链接]
ID:71477 发表于 2015-1-1 18:34 | 显示全部楼层 |阅读模式
MFC编写dll与调用

1、dll的新建和编写

     用vc++ 2008新建MFC ->MFCDLL,在向导中选择 “使用共享 MFC DLL的规则 DLL”,然后点击
完成就新建了一个dll文件工程。

打开 .cpp文件,编写自己需要的函数或子程序。

例如:函数声明可以放到.h里面,就像平时C语言工程一样
int shaoAdd(int a,int b)
{
  int c;
  c=a+b;
  return c;
}
然后打开 .def文件,在“EXPORTS下面加入自己要对外公开的函数

    例如:
EXPORTS
    ; Explicit exports can go here
    DllCanUnloadNow PRIVATE   //默认自带   
    DllGetClassObject PRIVATE //默认自带
    DllRegisterServer PRIVATE //默认自带
    shaoAdd   PUBLIC  //自定义的函数,只要名字即可

之后编译,到这里就完成了dll文件的编写、公开、编译。
2、dll文件的调用
新建一个 MFC 应用程序项目,在需要调用dll的 .cpp文件中输入一下代码 :
            #pragma   comment(lib,"dll文件的lib文件名");
             __declspec( dllimport ) dll文件中的函数申明;
    例:    #pragma   comment(lib,"test.lib");
            __declspec( dllimport ) int shaoAdd(int a,int b);
//注意,虽然这里是lib文件,但是生产exe后,只把test.dll文件放到exe目录下就行。不需要test.lib文件
之后把dll工程中编译好的 .dll 和 .lib 文件复制到调用dll程序的源文件目录,最后就能在调用dll的源程序中使用dll中的函数!
例如:在对话框按钮事件中使用
void CMyDlg::OnButton5()
{
    m_edit2.SetSel(0,-1,FALSE);
    m_edit2.Copy();
    MessageBox("内容已复制!!!");
    if (shaoAdd(10,20)==30)
    {
        MessageBox("DLL调用成功!!!");
    }
}
最后编译你的工程,生产exe文件即可。

使用时,要把exe文件和dll文件放到一个目录下,即可使用,否则会报错.

备注:DLL文件内如果使用到MFC库的时候,最好在每个自定义函数体内都加上
      "AFX_MANAGE_STATE(AfxGetStaticModuleState());"

回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表