C++技巧(静/动态链接库使用总结) |
|
www.nanhushi.com 佚名 不详 |
一、静态库编写 1.首先当然是开VS然后创建一个静态库工程啦 2.格式.一般有头文件.h和原文件.cpp,当然你也可以写一在一个cpp里. mydll.h------------------------ extends "C" { int sum(int num1,int num2); int mult(int num1,int num2); } mydll.cpp-------------------- #include "Mylib.h" int sum(int num1,int num2) { return num1+num2; } int mult(int num1,int num2) { return num1*num2; } 3.编译得到lib,然后拿埋mydll.h就可以使用了 二、动态库编写 1.首先创建一个动态工程. 2.格式. mydll.h------------------------ #ifdef DLL_API #else #define DLL_API extern "C" _declspec(dllimport) #endif DLL_API int _stdcall add(int a,int b); mydll.cpp-------------------- #define DLL_API extern "C" _declspec(dllexport) #include "mydll.h" #include int add(int a,int b) { return a+b; } 3.编译的到lib,和dll,然后拿埋编写的mydll.h就可以使用了. 个人想说的话:动态库必须要用_declspec()字样标识,但是静态的就不用了.extends "c" 和_stdcall都是调用方式, 详细看这里 使用方法 一、静态库包括.lib和.h文件,在工程中使用静态库分为3步: 1、在工程中加入静态库,考试大提示有两种方法: 方法一:项目设置中引用.lib,project-setting-link-object/library modules中添加.lib;(需要在tools/options设置正确的引用路径) 方法二:在项目中直接加入lib,project-add to project-files,选择正确的.lib。 方法三: #pragma comment(lib, "##/##/mine.lib") 2、在工程中包括.h文件;(可能需要在tools/options设置正确的引用路径) 3、在工程中使用静态库中的函数; 二、 动态链接库一般包括.lib(导出函数),.h,.dll,使用动态库有两种情况: 1、隐式链接,同使用静态库相似,分为三步:引用.lib,包含头文件,使用导出函数; 2、动态加载,直接使用LoadLibrary() FreeLibrary( ) GetProcAddress() 加载所需的动态库,然后指定所需的导出函数,效率最高!
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: C++技巧(判断目录是否存在并创建目录) 下一篇文章: C++技巧(wxWidgets程序链接错误解决方法) |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|