我很困惑,爲什麼__declspec(dllexport)
或同等需要在頭文件中去。說我正在寫一個圖書館。當然,用戶不需要知道或擔心符號是否被導出,他們關心的只是函數聲明存在,並且可能會與共享庫或靜態庫本身鏈接。那麼爲什麼不能將所有這些樣板文件放入源文件中,僅在構建時使用?dllexport在標題混淆
我想到的唯一用例是某人正在編寫我的庫的包裝並需要導出所有函數的情況,但通常情況並非如此 - 是否真的值得將所有導出的東西放在公共頭文件中?有什麼我錯過了,這是鏈接器的技術限制..?
我這麼問是因爲我喜歡我的頭和構建系統是乾淨的,並作爲dllexport
東西一般設定/不設定基於我們是否建庫爲共享或靜態庫,我發現它奇怪的是,它應該最終進入公共頭部,因爲它(根據我的理解)基本上是一個構建時間的概念。那麼有人可以請我啓發我失蹤?