所以我很確定我的設計/設置有問題。但基本上在Visual Studio中,我想創建一個鬆散地包裝第三方代碼的.lib項目,該部分非常簡單。創建C++ .lib項目,消費者項目必須引用libs包括
然而,我發現當我在我的其他項目中使用lib(在這種情況下,一個dll,可能很容易成爲一個不同的proj等exe),dll項目抱怨它需要相同的包含目錄作爲lib項目。這似乎...沒有幫助。 我sorta得到爲什麼它顯示的消息,因爲我包括從我的庫頭,這反過來包括第三方包含文件...
有沒有更好的設計建議呢?或者在Visual Studio中鏈接2個項目的更好方法。
我的消費dll,確實有我的lib的include目錄引用,並且我添加了項目作爲參考,所以lib輸出也應該設置。
以幫助觀察
第三方代碼 - >我的包裝的lib - >我的DLL消費者。
它看起來好像我的消費者代碼應該包含相同的頭文件,我的包裝項目旨在抽象。
我想我明白你的意思了,現在我只想着如何做到這一點,不包括第三方頭,在我的頭部,暴露給我的DLL的消費者。 – nagates
@nagates,這是在h和cpp之間分割你的代碼的問題。 h應該只包含接口細節,cpp - 實現。這可能會有所幫助:https://stackoverflow.com/questions/843389/the-pimpl-idiom-in-practice – KonstantinL
@KonstantinL,如果你把實現放在cpp文件中,那麼你的用戶是否創建了你的類型?您可以包含接口標頭,但消費者代碼如何知道更具體的類,它實現了接口(使用第三方代碼)。 – nagates