我們的團隊正在考慮從def文件移動到__declspec(dllexport)宏,因爲它必須在*.def
文件中使用mangling名稱,這是一項繁瑣的任務來維護這些醜陋的任務看那裏的名字。但是我們仍然懷疑使用* .def文件而不是使用__declspec(dllexport)宏進行函數導出會有什麼好處。.def文件與__declspec(dllexport)宏
感謝您的建議!
我們的團隊正在考慮從def文件移動到__declspec(dllexport)宏,因爲它必須在*.def
文件中使用mangling名稱,這是一項繁瑣的任務來維護這些醜陋的任務看那裏的名字。但是我們仍然懷疑使用* .def文件而不是使用__declspec(dllexport)宏進行函數導出會有什麼好處。.def文件與__declspec(dllexport)宏
感謝您的建議!
.def文件可以通過序號值(@ 1,@ 2,...)而不是按名稱導出。這可以:
它可以避免修飾函數名,從而提高編譯器兼容性(即調用__stdcall和__cdecl的約定差異)。 這是在dll中導出未裝飾名稱的an example。
根據MSDN: https://msdn.microsoft.com/en-us/library/hyx1zcd3.aspx,有四種方法導出的定義,在推薦的順序列出:在源代碼中
definition
」)的.DEF文件的優點如下:
出口的.DEF文件的缺點是, :
按序輸出的優點是您可以減小輸出表的大小。然而,那麼你必須使用序號而不是友好的名字。