在VS2012中调用动态链接库
来源:互联网 发布:ui设计培训知乎 编辑:程序博客网 时间:2024/06/11 16:27
一、静态调用
1. 在main函数中直接声明库和导出函数,如下示例:
#pragma comment(lib, “Hello.lib”) //首先添加静态库extern “C” void __declspec(dllimport) Hello (); //声明将要使用的函数int main(){ Hello(); //直接调用该函数}
2. 将dll的头文件和静态库同时包含在main.cpp中,如下示例:
#include <Hello.h> // 在main.cpp中添加头文件,其实与第一种方法差不多,
// 只是这种方法更省事,可直接复制粘贴。#pragma comment(lib, “Hello.lib”) //添加静态库int main(){Hello(); //直接调用该函数}
3. 在main.cpp 中添加头文件,将静态库提供给编译器来链接:
具体操作:选中“项目”,左键单击,选择“属性”,在弹出窗口左侧选中“链接”,再选择“输入”,在第一项“附加依赖项”里加入:Hello.lib;
然后在main.cpp文件中还是要加入头文件,其余如上。
二、动态调用
动态调用过程如下:
typedef void(* lpHello)(void) ; //宏定义函数指针类型int main(){HINSTANCE hDLL; //DLL句柄lpHellohello; //函数指针hDLL = LoadLibrary(“Hello.lib”) ; //载入动态链接库if(hDLL != NULL){hello = (lpHello)GetProcAddress(hDLL, “Hello”); //获得函数地址if(hello != NULL){hello(); //调用函数}FreeLibrary(hDLL) ; //释放DLL}}
动态调用使用的是“DLL加载—DLL函数地址获取—DLL释放”的方式。
0 0
- 在VS2012中调用动态链接库
- 在VS2012中用动态链接库生成lua.exe
- 在SQL中调用动态链接库中的函数
- 通过ffi在node.js中调用动态链接库
- 在VS2010中创建和调用动态链接库和静态链接库
- 在VC++中隐式调用动态链接库
- __cdecl与__stdcall 调用约定在动态链接库调用中不同的表现
- 再议:__cdecl与__stdcall 调用约定在动态链接库调用中不同的表现
- 使用Java调用DLL动态链接库(如何在Java中调用DLL方法)
- c++在vs2012中链接mysql操作
- VS2012中使用OpenCV-3.0.0的动态链接库和静态链接库
- Net中调用Win32动态链接库
- android 中调用 so 动态链接库
- VS2012引入静态和动态链接库
- VS2012动态链接lua
- vs2012在已有项目上生成和使用dll动态链接库
- 在Delphi和VC中创建和调用动态链接库 (转)
- 在Delphi中调用VC++创建的动态链接库的Demo
- Sharepoint基本概念
- android中的硬件及相关传感器
- 《深入理解Java虚拟机》笔记
- 十大最优秀的Web网站性能测试软件工具
- 计算机广告学目录
- 在VS2012中调用动态链接库
- c语言学习笔记总结
- 继承关系的类初始化和实例化的顺序
- 第二周作业
- INI文件的读取
- CareerCup How would you implement a secondary sorting
- 基金产品质量线形同虚设
- linux命令
- ThreadLocal