![]() ![]() |
|
C++技巧(静/动态链接库使用总结) | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/11/1 20:41:30 文章录入:杜斌 责任编辑:杜斌 | |
|
|
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() 加载所需的动态库,然后指定所需的导出函数,效率最高! |
|
![]() ![]() |