C语言动态链接库DLL的调用
1、新建DLLTest文件夹,在该文件夹中新建source文件夹

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



3、win+R+cmd请出总指挥“命令行”,输入(小心空格)
cl /c E:\VCfile\DLLTest\source\add.c /FoE:\VCfile\DLLTest\source\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】

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 <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;}

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