C++ 动态库生成及调用
1、首先是宏定义,创建从 DLL 导出类或函数的简单宏。
#ifdef myDll_EXPORTS //动态库名称+_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport) //提高效率,避免导出dll中的全局变量和类的静态变量时的链接错误
#endif
// DLL中的所有文件均使用命令行上定义的myDll_EXPORT符号进行编译,使用此DLL的任何其他项目上不定义此符号。
// 如此,调用此动态库的任何其他项目将MYDLL_API函数视为是从DLL导入的,而此DLL则将用此宏定义的符号视为是被导出的。
2、定义导出类及导出函数。
//.h
#ifdef __cplusplus
extern "C"
{
#endif
class MYDLL_API MyUi : public QWidget
{
Q_OBJECT