0
点赞
收藏
分享

微信扫一扫

Qt5.12实战之dll中导出类使用MAP映射及Def导出


1.创建类并声明及实现函数

Qt5.12实战之dll中导出类使用MAP映射及Def导出_c++

类函数实现

Qt5.12实战之dll中导出类使用MAP映射及Def导出_开发语言_02

 

修改工程配置为.dll

Qt5.12实战之dll中导出类使用MAP映射及Def导出_默认值_03

 

生成映射文件

Qt5.12实战之dll中导出类使用MAP映射及Def导出_c++_04

 

Qt5.12实战之dll中导出类使用MAP映射及Def导出_默认值_05

 

打开.map文件,可看到函数在映射文件中的定义

Qt5.12实战之dll中导出类使用MAP映射及Def导出_c++_06

 

复制映射文件的函数定义到def文件中并指定序号

Qt5.12实战之dll中导出类使用MAP映射及Def导出_c++_07

 

生成生成工程,后可看到lib文件

Qt5.12实战之dll中导出类使用MAP映射及Def导出_qt_08

 

使用

Qt5.12实战之dll中导出类使用MAP映射及Def导出_qt_09

 

引用头文件

Qt5.12实战之dll中导出类使用MAP映射及Def导出_c++_10

 

使用导入库函数

Qt5.12实战之dll中导出类使用MAP映射及Def导出_#include_11

  

Qt5.12实战之dll中导出类使用MAP映射及Def导出_qt_12

 源码:

#include <iostream>
//声明gExport_Value为dll中导出的变量
extern int _declspec(dllimport) gExport_Value;
#include "../TestExportVal_Declspec/TestExportVal_Declspec.h"
#include "../TestExportClass/MyClass.h"
#include "../TestExportClassDef/TestExportClassDef.h"

int main()
{
	std::cout << "Hello World!\n";
	std::cout << "默认值 :" << gExport_Value;
	gExport_Value = 666;
	std::cout << "修改值 :" << gExport_Value;
	
	std::cout << "默认值 :" << gExportV1 <<","<< gExportV2;
	gExportV1 = 777;
	gExportV2 = 888;
	std::cout << "修改值 :" << gExportV1 << "," << gExportV2<< std::endl;

	//调用导出类的静态变量
	std::cout << "默认值 :" << MyClass::myLng<< std::endl;
	MyClass::myLng = 1998;
	std::cout << "修改值 :" << MyClass::myLng<<std::endl;;

	//调用类对象的成员函数
	MyClass my;
	std::cout << my.add(12, 34) << std::endl;
	std::cout << my.sub(78, 56)<<std::endl;

	//调用类对象的成员函数
	TestExportClassDef classDef;
	std::cout << classDef.add(108, 32) << std::endl;
	std::cout << classDef.sub(9909, 3303) << std::endl;
	getchar();
}

举报

相关推荐

0 条评论