DLL的部署和使用[VS2010-2012]

    DLL(Dynamic Link Library)动态链接库, 直观讲就是封装起来的一堆函数,编译成二进制,来进行组件化,模块化,同时防止了技术泄露(most important ...)。

    DLL的使用分两种形式:写代码来调用;设置项目属性来调用。

    写代码调用就是在代码中写:

HMODULE procad = LoadLibrary(...);

    这种方法类似于使用链表代替数组,会优化程序但是增加编程复杂度,也容易出错,不建议普通程序使用。这里只介绍DLL的自动链接.

1,放文件:首先将你的DLL和对应的LIB文件都放到DEBUG生成目录下。

2,添加库目录:

依次进入->解决方案(solution)->项目属性(properties)->链接器(Linker)

属性中有一个附加库目录(additional library directory) 在里面加入你当前工程的DEBUG目录,就是你刚才放DLL的地方。

3,添加LIB文件:在

 链接器linker->输入input 

的属性中添加附加依赖项(additional dependences):

   添加如下: $(TargetDir)\你的LIB.lib  【注释1】

4,最后 将LIB 和 DLL加入工程:

右键你的工程->加入(add)->已有文件(existing)

把你放在Debug里面的lib和dll加进来。


(可选)5,加个头文件:

    如果你很清楚你的DLL里有什么函数,你就可以直接用函数名正常调用了,但是大多数情况DLL里面函数很多,程序员习惯于在工程里添加一个头文件,里面写了DLL函数声明。

    一般来说,给你的dll都会给你配套的 lib 和 头文件。

    另外,一些环境下还必须有头文件声明,才能让编译器在DLL中寻找函数实现,

my_dll_name.h
void _API_  __stdcall_ printHello();
int _API_  __stdcall_ getBigger(int a,int b);
.......


    专业的开发人员称此方法为(隐式调用),不易理解记忆。建议朋友们记 “自动调用”,不用写代码 ,将另一种需要写代码的调用记 “手动调用”。

【注释1】$(TargetDir)就是你的输出文件夹,工程当前是Debug模式,所以输出到debug。就像其他程序一样,他们的dll是和exe等文件放在一块的,只要在一个目录下,就可以找到dll。程序"错误:找不到xxxx.dll"的现象就是因为dll不在文件夹下。当然也可以把它设置成D:\ProgramFiles\ 但是如果你的用户没有D盘,(像我一哥们),就没办法了。







(Dig Tech, Speak Human)

讲技术,说人话

 Aurora 极光城


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值