如何從 DLL 匯出包含 std:: 物件的類別?
Nov 09, 2024 pm 10:23 PM從DLL 匯出包含std:: 物件的類別
嘗試從DLL 匯出包含std:: 物件(例如向量或字串)的類別時,您可能會遇到有關需要dll 介面的警告。當編譯器偵測到類別中複雜類型的成員未明確標記為 DLL 匯出時,會觸發此警告。
使用 DLL_EXPORT 轉送宣告成員類型可以部分解決該問題。然而,為了確保成員函數的正確導出,其編譯單元中的對應類別也必須標記為 DLL_EXPORT。
這個要求源自於編譯器無法確定客戶端使用了該類別的哪些方法DLL_EXPORTed 類別的。因此,它強制要求必須導出所有可訪問的方法。在這種情況下,不建議忽略警告並停用它。
要解決非dll 可匯出成員的警告,可以考慮以下方法:
- 停用警告: 這適用於私有成員或客戶端無法存取的成員。
- 建立包裝器或間接方法: 這涉及建立 DLL_EXPORT 包裝器方法或建立間接方法,有效地向客戶端隱藏內部實作。
- 使用 PIMPL:此習慣用法有助於減少外部可見成員的數量,從而最大限度地減少問題。
在提供的範例,前向聲明模板專門化 std::allocator
以上是如何從 DLL 匯出包含 std:: 物件的類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)