动态链接库应用举例
2012-07-01 00:17
387 查看
既然写了静态链接库,就顺带把动态链接库也学习下。
创建一个动态链接库工程,名称为ConvertDynamicLib
在cpp文件中写入下面的代码
编译
========================================
新建一个控制台程序,将动态链接库的dll文件和lib文件拷贝到当前的工程目录中
lib文件为编译时需要,dll为运行时需要
看代码就知道,添加lib文件,声明dll中的函数
然后在main函数中调用函数。
创建一个动态链接库工程,名称为ConvertDynamicLib
在cpp文件中写入下面的代码
#include "stdafx.h" #include <stdlib.h> #include <windows.h> #include <stdio.h> BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } __declspec(dllexport) void BinToDec(char* szDecOutput,char* szBinInput) { int nDecimal=0; int Len=lstrlen(szBinInput); for (int i=0;i<Len;i++) { char h = szBinInput[Len-1-i]; char str[1]; str[0]=h; int j = atoi(str); for (int k=0;k<i;k++) { j = j*2; } nDecimal = nDecimal+j; } sprintf(szDecOutput,"%d",nDecimal); } __declspec(dllexport) void OctToDec(char* szDecOutput,char* szOctInput) { int nLenth = lstrlen(szOctInput); int nDecimal = 0; for(int i=0;i<nLenth;i++) { char h = szOctInput[nLenth-1-i]; char str[1]; str[0] = h; int j = atoi(str); for(int k=0;k<i;k++) { j=j*8; } nDecimal += j; } sprintf(szDecOutput,"%d",nDecimal); }
__declspec(dllexport)在这里的意思是把后面的函数作为导出函数,以便可以在其它程序中使用
编译
========================================
新建一个控制台程序,将动态链接库的dll文件和lib文件拷贝到当前的工程目录中
lib文件为编译时需要,dll为运行时需要
#include "stdafx.h" #include <stdio.h> #pragma comment(lib,"ConvertDynamicLib.lib") void BinToDec(char* szDecOutput,char* szBinInput); void OctToDec(char* szDecOutput,char* szOctInput); int main(int argc, char* argv[]) { char tk[256]=""; char inputsz[256]="1010101001"; BinToDec(tk,inputsz); printf("%s\n",tk); return 0; }
看代码就知道,添加lib文件,声明dll中的函数
然后在main函数中调用函数。
相关文章推荐
- 九中算法思想及其应用举例
- 本周技术关注:LINUX动态链接库高级应用 #
- EL在实际开发中的应用举例
- 举例讲解iOS应用开发中hitTest触摸事件的编写方法
- Knockout应用开发指南 第八章:简单应用举例(1)
- MT【29】介绍向量的外积及应用举例
- 广播(有序)跨应用发送简单举例
- ASM应用举例
- MDX语句及函数应用举例
- Makefile中$@应用举例
- STL(九):函数适配器bind2nd 、mem_fun_ref 源码分析、函数适配器应用举例
- sizeof运算符应用举例
- 栈式应用举例-数制转换和后缀表达式求值
- UNIX网络编程——select函数的并发限制和 poll 函数应用举例
- 栈的应用举例
- 140822●数组及应用举例
- iOS-UIKit( UIBezierPath.h - -应用举例)
- 主题:JMS的两种消息模型(Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub))应用举例
- Boost::regex应用举例(一)
- 动态链接库在LabVIEW中的高级应用