C++ 动态链接库&静态链接库

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动态链接库见另一篇博文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值