VC根据第三方提供的xxx.dll,xxx.lib,xxx.h调用动态库
2013-05-07 22:05
288 查看
首先要理解以下概念:
*.obj:是c/c++对应的二进制代码格式,是未经重定位的;
*.lib:是若干个obj的集合,本质与obj相同;
*.dll:是可实际运行的二进制代码,重定位的代码;
*.h:是c/c++头文件,当#include时会把包含的文件的内容在c/c++源文件中展开。
(一) 静态调用如下:
1)xxx.dll拷到工程目录(不是解决方案目录,是和Debug和Release平级的目录)下;
2)把xxx.lib拷到工程目录下;
3)把xxx.h拷到工程目录下;
4)依次项目->属性->配置属性->链接器->输入,在附加依赖项中输入xxx.lib;
5)在工程的xxx.c或者xxx.cpp文件中引入xxx.h 就OK了。
(二)动态调用如下:
1)xxx.dll拷到工程目录(不是解决方案目录,是和Debug和Release平级的目录)下;
2)在c/c++源文件中添加include <windows.h>
*.obj:是c/c++对应的二进制代码格式,是未经重定位的;
*.lib:是若干个obj的集合,本质与obj相同;
*.dll:是可实际运行的二进制代码,重定位的代码;
*.h:是c/c++头文件,当#include时会把包含的文件的内容在c/c++源文件中展开。
(一) 静态调用如下:
1)xxx.dll拷到工程目录(不是解决方案目录,是和Debug和Release平级的目录)下;
2)把xxx.lib拷到工程目录下;
3)把xxx.h拷到工程目录下;
4)依次项目->属性->配置属性->链接器->输入,在附加依赖项中输入xxx.lib;
5)在工程的xxx.c或者xxx.cpp文件中引入xxx.h 就OK了。
(二)动态调用如下:
1)xxx.dll拷到工程目录(不是解决方案目录,是和Debug和Release平级的目录)下;
2)在c/c++源文件中添加include <windows.h>
{ HINSTANCE myLib = LoadLibrary("xxx.dll"); if(myLib) { typedef int (*Fun)(int,int);//参数与返回值都为int类型 MYFUNC funcAlias = NULL; // 函数别名 funcAlias= (Fun)GetProcAddress(myLib,"funcName");//funcName是DLL中声明的函数名 if(funcAlias) { funcAlias(param1,param2); } FreeLibrary(myLib); } }
相关文章推荐
- vc下DLL/lib的调用
- VC编译\链接\运行:包含文件、包含库lib、包含动态库dll的一些问题
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
- VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)
- C++ 加载dll 及调用lib 和 dll的 方法 和 动态库DLL与静态库lib的区别
- VC++动态库DLL制作和调用
- 【VC】VC调用CB的dll,lib生成方法--CB dll转VC lib
- 【BCB】CB调用VC的dll,lib生成方法--VC dll转CB lib
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)good
- VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)
- vc下DLL/lib的调用
- 使用QT+MinGW编写动态库dll供VC或VB调用
- vc调用动态链接库DLL和静态链接库Lib的四种方法
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
- vc下DLL/lib的调用
- 今天根据VB的Base64算法改造成了VC动态库,方便各种语言调用
- VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)
- vc下DLL/lib的调用
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)