特殊说明:版权归个人所有,请勿转载,谢谢合作。
静态链接是将应用程序使用的静态库,在编译时刻直接拷贝到可执行文件中。其中LIB文件为伪地址,如图12.8所示。
- 图12.8 静态加载原理图
在使用静态加载之前,对于刚刚创建的DLL工程需要做一些小小的改动,目的是告诉使用它的工程,使用的计算器算法函数名称及参数列表是什么,具体操作是在“Calc”工程中,点击【File】菜单,选择【New…】项,在新建窗口中选择【C/C++ Header File】项,并在【File】处输入创建的头文件名称,以“Calc”为例,如图12.9所示。
- 图12.9 创建头文件
在头文件中,对计算器算法的各个函数进行声明,代码如下所示:
// 加法 int MyAdd(int nOp1, int nOp2); // 减法 int MyDec(int nOp1, int nOp2); // 乘法 int MyMul(int nOp1, int nOp2); // 除法 int MyDiv(int nOp1, int nOp2);
拷贝刚刚创建的头文件“Calc.h”,同时拷贝Debug目录下的“Calc.lib”与“Calc.dll”文件,到“StaticLink”工程目录下,如图12.10所示。
- 图12.10 拷贝静态链接需要的文件
还需要将“Calc.h”与“Calc.lib”文件加载到工程中。在工程列表中,选择【FileView】文件视图,在当前工程上点击鼠标右键,在弹出的菜单中选择【Add Files to Project…】项,如图12.11所示。
- 图12.11 添加文件到工程
在文件类型处选择【所有文件(*.*)】,并选择“Calc.h”与“Calc.lib”文件后,点击【OK】按钮,如图12.12所示。
- 图12.12 文件选择
添加完成后,就可以在文件视图列表中查看到添加的文件,如图12.13所示。
- 图12.13 添加后的文件列表
在使用DLL之前,需要包含“Calc.h”的头文件,虽然他已经加入到工程之中,但如果不使用头文件引入的方法,是不会识别的。具体实现代码如下所示。
#include <windows.h> #include <stdio.h> #include "Calc.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char szBuffer[128] = { 0 }; // 临时缓冲区 int nOp1 = 10; // 操作数1 int nOp2 = 5; // 操作数2 sprintf(szBuffer, "加法:%d\r\n减法:%d\r\n乘法:%d\r\n除法:%d", MyAdd(nOp1, nOp2), MyDec(nOp1, nOp2), MyMul(nOp1, nOp2), MyDiv(nOp1, nOp2)); // 显示操作结果 MessageBox(NULL, szBuffer, "Dll加载示例", MB_OK); return 0; }
程序执行结果如图12.14所示。
- 图12.1 程序执行结果
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。