一.动态链接库的创建和调用
1. 动态链接库的创建
打开VS2013,然后一次点击”FILE->New->Project”,在弹出对话框中选择”Visual
在新建的工程中添加头文件”funcs.h”,并在该文件中输入如下内容:
class
{
public:
static
static
static
static
};
该文件声明了一个类,类名为myFuncs,并用修饰符”_declspec(dllexport)”来修饰,该修饰符的意思是声明该类为导出类,可供外部调用;如果头文件中存在函数,在函数类型和函数名之间加上该修饰符即可。
在新建的工程中添加类的实现文件”funcs.cpp”,并输入如下内容:
#include
double
{
}
double
{
}
double
{
}
double
{
If(0==b)
}
点击”BUILD->Build
2. 动态链接库的调用
新建一个C++空的控制台应用程序,工程命名为”UseFuncs”,添加文件”main.cpp”.
将”funcs.h”,”funcs.dll”和”funcs.lib”拷贝到工程UseFuncs的当前目录(即“UseFuncs\UseFuncs”)下,在”main.cpp”文件中输入如下内容:
#include
#include
#pragma
Using
void
{
double
double
cout<<”a+b=”<<myFuncs::Add(a,b)<<endl;
cout<<”a-b=”<<myFuncs::Subtract(a,b)<<endl;
cout<<”a*b=”<<myFuncs::Multiply(a,b)<<endl;
cout<<”a/b=”<<myFuncs::Divide(a,b)<<endl;
System(“pause”);
}
点击上方右三角进行编译,即可得出结果。这种调用不需要进行配置,然而却需要将.h,.dll和.lib三个文件拷贝到程序的当前目录下。如果在一个很大的工程中,一个动态链接库往往会被很多程序调用,如果一一拷贝,不仅费力,凌乱,还会产生一个动态链接库的多个副本。实际工程中一般都会指定固定的位置分别集中存放上述三种文件,然后开发程序时配置工程的相关路径,并在程序中包含头文件,就可以使用动态链接库中的函数或类了。
为了便于说明,我在E盘的目录下新建三个文件夹”head”,”dll”和”lib”,并将”funcs.h”拷贝到”head”中,将”funcs.dll”拷贝到”dll”中,将”funcs.lib”拷贝到”lib”中。接下来介绍如何进行配置:
①.添加工程头文件的搜索路径
依次点击”PROJECT->UseFuncs
②.添加工程动态链接库的搜索路径
依次点击”PROJECT->UseFuncs
③.添加工程静态链接库的搜索路径
依次点击”PROJECT->UseFuncs
④.添加工程依赖库
依次点击”PROJECT->UseFuncs
好了,配置完成,接下来在工程中添加”main.cpp”文件,输入上述代码,按下F5键,程序就可以调用动态链接库里的函数了。此外,值得注意的是:程序在”Debug”状态下配置后编译通过,但切换到”Release”状态后还需要进行一次上述配置。
二.静态链接库的创建和调用
1. 静态链接库的创建
打开VS2013,然后一次点击”FILE->New->Project”,在弹出对话框中选择”Visual
在新建的工程中添加头文件”funcs.h”,并在该文件中输入如下内容:
class
{
public:
static
static
static
static
};
静态链接库不需要添加修饰符”_declspec(dllexport)”;
在新建的工程中添加类的实现文件”funcs.cpp”,输入的内容和创建动态链接库时出入的内容一样;
点击”BUILD->Build
2. 静态链接库的调用
静态链接库调用的配置和动态链接库的配置一样,不同的是静态链接库调用少一个文件,在此不再赘述,操作时参考上述内容。