簡體   English   中英

如何在C ++ dll中導出函數的重載?

[英]How to export overloads of a function in a C++ dll??

我正在尋找一種從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?

在此先感謝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_EXPORTS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM