多语言展示
当前在线:1145今日阅读:59今日分享:29

C语言动态链接库DLL的调用

我只会C,用的是“老得掉牙”的VC++6.0,想实现最简单的dll的调用。一通百度之后终有所悟。好结果&好心情当分而享之!本着“简洁美”原则,传达下本篇摘要:.c->cl编译器->.obj->link链接器->.dll。在另一程序中调用该dll实现a+b
工具/原料

VC++6.0

方法/步骤
1

新建DLLTest文件夹,在该文件夹中新建source文件夹

2

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

4

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

5

dll的制造就告一段落,下面调用dll。新建源文件call_dll.c或.cpp放到DLLTest文件夹,同时add.dll也复制过来(看图),在call_dll.c中放入以下代码:#include #include 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;}

6

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

推荐信息