如何在C ++ DLL中导出函数的重载?

时间:2016-02-03 13:16:54

标签: c++ dll export

我正在寻找一种方法从我的C ++ DLL导出一个带有两个重载的函数。

这是我对.h文件的重载:

static __declspec(dllexport) int __stdcall TotalCost(char* a, double* b);
static __declspec(dllexport) int __stdcall TotalCost(char* a, double* b, double c);

我的问题是:

  • 是否可以导出函数的重载?
  • 我如何设置文件.def EXPORT ??

提前致谢 法比奥

1 个答案:

答案 0 :(得分:0)

是的,您可以导出重载。

经典方法是将以下宏定义添加到库标题中:

#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_EXPORTS