转载:DLL调用的两种方式(IDE:VC6.0,C++)

DLL调用有两种方式,一种是静态调用,另外一种是动态调用


转载: https://www.cnblogs.com/Pickuper/articles/2050409.html

(一)静态调用

静态调用是一种显式的调用方式,即在编程的时候便知道了被调用的DLL中的接口函数,在编译链接的时候将DLL与工程生成的exe相关联。以MyApp.dll为例,具体的操作步骤如下:

(1)需要的文件有:MyApp.dll,MyApp.lib,MyApp.h

(2)假设需要调用MyApp.dll的工程为MyTest,首先把MyApp.dll放到MyTest工程目录的Debug或者Release目录下,然后将MyApp.lib和MyApp.h放到MyTest工程目录的根目录下

(3)用VC打开MyTest工程,选中工程,然后选择VC菜单下的Project->Settings

(4)在弹出的对话框中选择Link选项卡,然后在Object/library modules输入框中输入MyApp.lib,点击OK

(5)在工程的FileView下,将MyApp.h文件添加到Header Files目录下

(6)最后在需要调用DLL中的函数的*.cpp文件中包含#include “MyApp.h”

(二)动态调用

动态调用是一种隐式的调用方式,即程序运行过程中装载DLL,然后获取指定函数名称的接口函数,然后再调用之。具体的代码示例如下:

{
       HINSTANCE hDllInst = LoadLibrary("MyApp.dll");
       if(hDllInst)
       {
              typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);
              MYFUNC youFuntionNameAlias = NULL;         // youFuntionNameAlias 函数别名
              youFuntionNameAlias = (MYFUNC)GetProcAddress(hDllInst,"youFuntionName");      // youFuntionName 
              																				//在DLL中声明的函数名
              if(youFuntionNameAlias)
             {
                    youFuntionNameAlias(param1,param2);
             }
             FreeLibrary(hDllInst);
       }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值