DLL中函数调用简单小例(原创)

来源:互联网 发布:网络词饼干是什么意思 编辑:程序博客网 时间:2024/05/01 23:57

下面通过例子介绍如何在动态链接库中定义函数、资源、和类以及如何在工程中使用动态链接库中已定义的函数、资源、类。

Dll 的定制

步骤和方法:

第一步:

运行AppWizard,定义项目名为mydll,选择MFC AppWizard(dll),而不是MFC AppWizards(exe)

第二步:
在这个例子中,只有一个AppWizard屏幕出现,选择MFC扩展

DLL(MFC Extension DLL (using shared MFC DLL),点击FINISH生成工程。

第三步:
点击File中的New,选择C/C++ Header FileFile Name中输入mydll.h,点击OK,创建mydll.h。输入extern "C" int PASCAL EXPORT sum(int i, int m, int n);,保存。

第四步:

mydll.cpp中添加

#include "mydll.h"

extern
"C" int PASCAL EXPORT sum(int i, int m, int n)

 {

return i+m+n;
}

第五步:

mydll.def 中添加

EXPORTS

     Sum  //标记出口

第六步:编译 生成mydll.lib and mydll.dll

主程序定制

第一步:
>>>>
选择Project Add To Project 中的New , 重新生成一个工程,选择MFC AppWizards(exe),项目名为textdll , 选择dialog ,点击FINISH,生成一个新的工程。。第二步:

拷贝…/mydll/debug/mydll.dll  ../ textdll/debug/下,

拷贝…/mydll/debug/mydll.lib…/textdll/目录下。

拷贝…/mydll/ mydll.h  ../ textdll/下,

 

第三步:

mydll.h添加到工程里,在textdll.cpp里加入

#include “mydll.h”

第四步:

添加edit控件IDC_EDIT1 和对应的m_edit1 (int)

第五步:

button1中添加如下代码

m_edit1=sum(1,2,3);

UpdateData(false);

第六步:

project  -setting –link 添加mydll.lib

第七步:

可以编译了

 

注意:;

1 Mydll.lib and mydll.dll 的位置 要放对,并且和link对应

2.不要忘记在mydll.def 中添加下面的代码 ,至关重要 它是出口

EXPORTS

    ; Explicit exports can go here

       Sum

3,它是正则dll,用来调用函数的,,

4,这是是静态调用方式,还有一种动态调用的方式