如何在C++;dll?? 我正在寻找一种从我的C++ DLL导出一个具有两个重载的函数的方法。
这是我在.h文件上的重载:如何在C++;dll?? 我正在寻找一种从我的C++ DLL导出一个具有两个重载的函数的方法。,c++,dll,export,C++,Dll,Export,这是我在.h文件上的重载: static __declspec(dllexport) int __stdcall TotalCost(char* a, double* b); static __declspec(dllexport) int __stdcall TotalCost(char* a, double* b, double c); 我的问题是: 是否可以导出函数的重载 如何在文件.def中设置导出 提前谢谢 Fabio是的,您可以导出重载 经典的方法是将以下宏定义添加到库标题中:
static __declspec(dllexport) int __stdcall TotalCost(char* a, double* b);
static __declspec(dllexport) int __stdcall TotalCost(char* a, double* b, double c);
我的问题是:
- 是否可以导出函数的重载李>
- 如何在文件.def中设置导出
Fabio是的,您可以导出重载 经典的方法是将以下宏定义添加到库标题中:
#ifdef MYLIB_EXPORTS
#define MYLIB_API __declspec(dllexport)
#else
#define MYLIB_API __declspec(dllimport)
#pragma comment(lib,"MYLIB.lib")
#endif
//...
在界面文件中使用上述宏:
MYLIB_API int ComputeTotal(...
class MYLIB_API C_MyClass...
您必须在DLL项目设置(C++/预处理器定义)中定义
MYLIB\u导出。
。是的,这是可能的。你可以做到这一点,而不是通过名字。或者只包含带有dllimport
的头文件,而不是dllexport
。是否存在“静态”declspec(dllexport)的原因?对我来说似乎是矛盾的。