C语言动态链接库DLL的调用
来源:网络收集 点击: 时间:2024-05-15新建DLLTest文件夹,在该文件夹中新建source文件夹

在source文件夹中造add.c( 注意.cpp不行 )关门放代码:
_declspec(dllexport)int add(int a,int b){return a + b;}
保存



win+R+cmd请出总指挥“命令行”,输入(小心空格)
cl /c E:\VCfile\DLLTestource\add.c /FoE:\VCfile\DLLTestource\add.obj开始挥舞编译器大棒。挥舞原则:
/c:只编译
E……add.c:C文件的老巢(替换成你的add.c路径)
/Fo:造出个obj
E……add.obj:obj放这儿(随机应变部分)
看见没?.obj已经诞生了
【如果找不到cl编译器,只需3步:一步,环境变量-系统变量-path中添加cl.exe路径,分好与前面分开(一般是:鬼晓得你把VC6安装在哪儿\VC6.0\Microsoft Visual Studio\VC98\Bin);二步, 新建 个名为INCLUDE的系统变量,值为:你的VC6安装位置\VC6.0\Microsoft Visual Studio\VC98\Include,三步:和二步类似, 新建 LIB变量,值为你的VC6安装位置\VC6.0\Microsoft Visual Studio\VC98\Lib】

继续输入(路径也要随机应变)
link /DLL /out:E:\VCfile\DLLTestource\add.dll E:\VCfile\DLLTestource\add.obj
开始挥舞链接器大棒,和cl类似。两大棒下去,眼睁睁看到add.dll出来(看命令行后面的文件夹中已经出现add.dll)。哈哈

dll的制造就告一段落,下面调用dll。
新建源文件call_dll.c或.cpp放到DLLTest文件夹,同时add.dll也复制过来(看图),在call_dll.c中放入以下代码:
#include stdio.h#include windows.h
typedef int(* my_fun)(int a,int b);
int main(void){HINSTANCE dllA;my_fun f1;
dllA = LoadLibrary(add.dll);if(NULL==dllA)printf(无法加载dll!\n);f1 = (my_fun)GetProcAddress(dllA,add);if(NULL==f1)printf(找不到函数地址!\n);
printf(调用结果:%d\n, f1(2,3));
return 0;}

编译,连接运行出现个5!此刻是属于程序员的你的,加鸡腿!

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_763844.html