DLL调用的两种方式(IDE:VC6.0,C++)
来源:互联网 发布:数据特征分析 编辑:程序博客网 时间:2024/05/29 10:25
http://www.cnblogs.com/Pickuper/articles/2050409.html
DLL调用有两种方式,一种是静态调用,另外一种是动态调用
(一)静态调用
静态调用是一种显式的调用方式,即在编程的时候便知道了被调用的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);
}
}
- DLL调用的两种方式(IDE:VC6.0,C++)
- vc6调用dll的几种方式
- dll的两种调用方式
- delphi dll的两种调用方式
- dll的两种调用方式,lib与dll区别
- Delphi中DLL两种调用方式的比较
- C#调用C++ DLL动态库的两种方式
- delphi 调用dll两种方式
- VC6.0中加载库(lib、dll)文件的两种方法
- VC6.0中加载库(lib、dll)文件的两种方法
- VC6.0中加载库(lib、dll)文件的两种方法
- VC6.0中加载库(lib、dll)文件的两种方法
- VC6.0中加载库(lib、dll)文件的两种方法 .
- VC6.0 DLL调用与创建的例子(HOOK)
- VC6.0调用Matlab Dll的方法
- C#调用非托管C++DLL的两种方法
- python调用dll中特定函数的两种方式(ctypes)
- 函数调用的两种方式PASCAL调用方式和C调用方式
- 暑假小结
- Flex识别文本文件编码
- What is the difference between initWithCoder:, initWithNibName:, and awakeFromNib?
- 云窗缓存视屏解码程序
- Codeforces Round #263 (Div. 2)
- DLL调用的两种方式(IDE:VC6.0,C++)
- 使用Tcl脚本分配FPGA管脚
- CocoaPods一个Objective-C第三方库的管理利器
- 2014 Multi-University Training Contest 10 1001 最大权闭合图
- 滚动条事件
- Markdown中插入数学公式的方法
- O2O
- getElementById(),getElementsByName(),getElementsByTagName()
- 金庸武侠小说之我的见解