#ifdef _EXP_LIB_
#define EXP_LIB EXTERN_C
#else
#ifdef _EXP_FUN_
#define EXP_FUN EXTERN_C __declspec(dllexport)
#define EXP_CLASS __declspec(dllexport)
#else
#define EXP_FUN EXTERN_C __declspec(dllexport)
#define EXP_CLASS __declspec(dllexport)
#endif
#endif
//LIb静态库调用,添加_EXP_LIB_到预处理器
//DLL导出调用,添加_EXP_FUN_到预处理
导出函数
.h
EXP_FUN void Start();
.cpp
EXP_FUN void Start()
{
}
导出c++类 类不能给c使用,C标准不能导出类
class EXP_CLASS CGETINFO
{
public:
CGETINFO();
~CGETINFO();
public:
void GetMoudDir();
};
#define EXP_FUN EXTERN_C __declspec(dllexport)//导出函数名不被修改
#define EXP_FUN __declspec(dllexport)//导出函数名修改
//显示调用 通过 LoadLibrary GetModuleHandle
//隐式调用 加载dll的lib文件和.h头文件
Lib调用dll 添加dll的.h
添加引用lib
#ifdef _DEBUG
#pragma comment(lib,"D:\\Desktop\\MFCTEST\\StrModD.lib")
#else
#pragma comment(lib,"D:\\Desktop\\MFCTEST\\StrModR.lib")
#endif
DLL导出与静态库调用
本文介绍如何在C++中定义导出函数及类,并实现DLL与静态库之间的相互调用。详细展示了宏定义控制导出符号的方式,以及在不同编译配置下选择正确库文件的方法。
4651

被折叠的 条评论
为什么被折叠?



