DLL之头文件
#pragma once
#ifndef MY_API
#define MY_API _declspec(dllimport) //.cpp文件中先定义为_declspec(dllexport),然后include该头文件
#endif
class MY_API FanucCom
{
public:
FanucCom();
~FanucCom();
short getVersion();
};
DLL之CPP文件
#define MY_API _declspec(dllexport)
#include "stdafx.h"
#include "FanucCom.h"
#define VERSION 107
short FanucCom::getVersion() {
return VERSION;
}
FanucCom::FanucCom() {};
FanucCom::~FanucCom() {};
调用方代码
#include "stdafx.h"
#include "FanucCom.h"
#include <Windows.h>
#pragma comment(lib,"FanucCom.lib")
int main()
{
FanucCom a;
printf ("----- %d\n",a.getVersion());
system("pause");
return 0;
}
调用静态链接库
需两个文件:
(1).h头文件,包含 lib中说明输出的类或符号原型或数据结构。应用程序调用lib时,需要将该文件包含入应用程序的源文件中。
(2).LIB文件,这个lib文件是静态编译出来的,索引和实现都在其中。使用静态编译的lib文件,在运行程序时 不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行。
调用动态链接库
需三个文件:
(1).h头文件,包含dll中说明输出的类或符号原型或数据结构的.h文件。应用程序调用dll时,需要将该文件包含 入应用程序的源文件中。
(2).LIB文件,是dll在编译、链接成功之后生成的文件,作用是当其他应用程序调用dll时,需要将该文件引入应用 程序,否则产生错误。如果不想用lib文件或者没有lib文件,可以用WIN32 API函数LoadLibrary、GetProcAddress装载。
(3).dll文件,真正的可执行文件,开发成功后的应用 程序在发布时,只需要有.exe文件和.dll文件,并不需要.lib文件和.h头文件
注意:
C Style动态链接库见另一篇博文。