提供的程式碼片段定義了巨集 DLLEXPORT,以根據 COMPILING_DLL 巨集的值將 dllexport 或 dllimport 屬性新增至函數中。但是,問題仍然存在:如何以及在何處定義 COMPILING_DLL?
一種選擇是使用專案本地預設定義的巨集。這些宏可以在 屬性 -> 中找到。 C/C->預處理器->預處理器定義.
例如,如果您的專案名稱為 MyDLL,則預設巨集為 MYDLL_EXPORTS。您可以如下使用該巨集:
#ifdef MYDLL_EXPORTS #define DLLEXPORT __declspec(dllexport) #else #define DLLEXPORT __declspec(dllimport) #endif
編譯 DLL 專案時,將定義 MYDLL_EXPORTS,使 DLLEXPORT 能夠「匯出」。在客戶端程式碼中使用 DLL 時,不會定義 MYDLL_EXPORTS,從而使 DLLEXPORT 能夠「導入」。
這種方法允許您使用相同的標頭來編譯 DLL 並在客戶端程式碼中使用它。
以上是如何為 DLLEXPORT/DLLIMPORT 巨集正確定義 COMPILING_DLL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!