链接库的例子
来源:互联网 发布:豆瓣知乎的运营方式 编辑:程序博客网 时间:2024/06/15 11:54
一、静态库(求面积)
1、用vs05建立一个空解决方案“测试动态链接库”
这样就能将我以后建的项目放在一起。
2、静态库dlltest的建立,新建一个Win32的项目“DllTest”在应用程序设置时选择“静态库”。
3、添加一个头文件“DllTest.h”
#include <math.h>class Rect;void __stdcall GetRectClassPointer( Rect** );//用于new一个Rect对像void __stdcall AssignRect( Rect* pRect, int x1, int y1, int x2, int y2 );//赋值int __stdcall AreaOfRect( Rect* );//求面积注:DllTest.h是我们在使用库的时候必须也要加上的,相当于做声明用,所以在这里我们要将class Rect的定义不放到这里,因为这里别的程序员在使用你的库时可以看到的,为了达到隐藏的作用,我们一般将函数与类的定义放在相应的cpp文件中进行。头文件一般只做声明。
4、添加DllTest.cpp文件
class Rect{public:int x1, y1, x2, y2;};void __stdcall GetRectClassPointer( Rect** ppRect ){*ppRect = new Rect; }void __stdcall AssignRect( Rect* pRect, int x1, int y1, int x2, int y2 ){pRect->x1 = x1;pRect->x2 = x2;pRect->y1 = y1;pRect->y2 = y2;}int __stdcall AreaOfRect( Rect* pRect ){return ( pRect->x2 - pRect->x1 ) * ( pRect->y2 - pRect->y1 );}
5、点击编译运行,这样我们的静态库就可以了,把生成的DllTest.lib与声明的头文件DllTest.h文件拖入我们要用到的项目中即可。
下面我们测试一下我们刚生成的库。
首先,像刚才那样建立一个新Win32控制台空项目。
添加一个main.cpp文件
#include <iostream>#include "DllTest.h"#pragma comment( lib, "DllTest.lib" )int main( void ){Rect* pRect;GetRectClassPointer( &pRect );AssignRect( pRect, 10, 10, 20, 20 );std::cout << AreaOfRect( pRect ) << '\n';return 0;}
运行一下
至此我们的静态库就完了。
二、静态链接动态库
1、像刚才一样,建一个空的解决方案“静态链接动态库”
2、同样添加一个Win32项目“DllTest”,在应用程序设置时选择DLL与空项目
3、添加一个DllTest.h头文件
#include "stdio.h"void __stdcall _printf(char *);
4、添加一个DllTest.cpp文件
#include "DllTest.h"void __stdcall _printf(char * str){printf("%s\n",str);}
5、注意添加一个DllTest.def模版文件
6、里面添加如下代码
LIBRARY"DllTest" //这是链接库的名字EXPORTS_printf //这是你对外的接口名字,也就是刚定义的函数名
7、编译一下,把生成的Dlltest.lib、DllTest.dll与DllTest.h文件放入你的新项目就行了
8、测试新建一个Win32控制台的空项目,添加main.cpp
#include <iostream>#include "DllTest.h"#pragma comment (lib,"DllTest.lib")void main(){char *str = "Hello dll!"; _printf(str);}
9、编译运行
至此,我们的两个链接库就学完了,当然还有其它的几种以后慢慢学...嘻嘻
- 链接库的例子
- 静态链接库使用的例子
- Android下动态链接库.so调用的简单例子
- Android下动态链接库.so调用的简单例子
- Android下动态链接库.so调用的简单例子
- linux下编译动态链接库的一个小例子
- linux下编译动态链接库的一个小例子
- linux下编译动态链接库的一个小例子
- linux下编译动态链接库的一个小例子
- html抓取网页链接的例子
- Flash navigateToURL 网站链接的例子
- 爬取视频链接的例子
- 链接文件lds的一个例子解析
- 编译链接muduo库中的echo例子
- linux 下创建动态链接库的一个很简单的例子
- linux 下创建动态链接库的一个很简单的例子
- 两个动态链接库(MFC扩展库)及其测试程序的例子(含源代码)
- 两个动态链接库(MFC扩展库)及其测试程序的例子(含源代
- oracle erp
- 注入中的数字型,字符型,搜索型的区别
- 在DOS下添加用户
- 高斯消元法解异或方程组 模板
- 10--26sql 看看肯定是有用的
- 链接库的例子
- C#的MouseClick和MouseDoubleClick事件讲解
- 【高斯消元解XOR方程组】各种题
- GLSL 绘制管线
- POJ 1504 Adding Reversed Numbers
- XP创建ADSL连接的方法
- 家庭防火应急预案
- java程序中调用linux命令
- ASP.NET的chart图表控件