动态库使用示例代码
来源:互联网 发布:tcl脚本语言编程 编辑:程序博客网 时间:2024/06/06 00:25
只是入门级的代码
动态调用方式的示例:
相对于静态库来说动态库的使用比较复杂一些。
这里将网上看到的一点内容总结下,方便日后学习:
-------------------------
该工程和下面的测试工程在同一个解决方案中
lib.h文件
#ifndef __LIB_H__
#define __LIB_H__
extern "C" int __declspec(dllexport) add(int x,int y);
#endif//lib.h
lib.cpp文件
#include "lib.h"
int add(int x,int y)
{
return x+y;
}
--------------------------
main.cpp测试文件
#include <iostream>
#include <windows.h>
typedef int (*LpAddFunction)(int,int);
int main()
{
HINSTANCE hDll;//DLL句柄
LpAddFunction add_function;
hDll = LoadLibrary("..\\Debug\\lib_test.dll");
if(hDll != NULL)
{
add_function = (LpAddFunction)GetProcAddress(hDll,"add");
if(add_function != NULL)
{
int result = add_function(2,3);
std::cout<<"2 + 3 = "<<result<<std::endl;
}
FreeLibrary(hDll);
}
return 0;
}
------------------------
在上面的例子中我们看到了由系统API提供的三位一体“DLL加载-DLL函数地址获取-DLL释放”方式,这种调用方式称为DLL的动态调用
静态调用方式可以将dll库考到相应的测试工程当中,也可以实现动态库到达调用
示例工程:
//#pragma comment(lib,"..\\Debug\\lib_test.dll")
extern "C"__declspec(dllimport)int add(int x,int y);
int main()
{
int result = add(2,3);
std::cout<<"2 + 3 =???? "<<result<<std::endl;
}
- 动态库使用示例代码
- 动态链接库示例代码
- 动态代理代码示例
- lapack 动态链接库的使用示例
- linux 下动态库使用示例
- Java动态代理示例代码
- 动态滚屏代码示例
- Java动态代理示例代码
- Extjs4中使用grid的reconfigure()方法动态改变列使用示例(代码)
- 动态库示例
- 动态增删table行示例代码
- 动态为事件添加js代码示例
- 动态为事件添加js代码示例
- 静态与动态加载Dll [示例代码]
- Extjs代码示例_动态更新进度条
- Jquery 动态生成表格示例代码
- 航班动态查询api调用代码示例
- 动态内存分配的C代码示例
- json
- LINQto JSON
- NSMutableArray中的自动释放对象让我郁闷了一整天
- alsa ubuntu声卡驱动重新安装
- CopyOnWriteArrayList
- 动态库使用示例代码
- xml容易出现的异常
- Ubuntu下安装低版本gcc
- viewStub,requestFocus,merge,include
- rails 3遇到 Could not find a JavaScript runtime execjs错误(ubuntu)
- 用Ogre固定渲染管线实现火炬之光X-RAY效果 .
- MFC多线程编程的几点经验 (防止死锁)
- 好长时间没有过来转了。
- enum用法示例