我有一個正在使用DLL的C++應用程序。現在,我想從我的應用程序中的DLL中訪問一個方法。但是,編譯器給我「無法解析的外部符號」錯誤,因爲即使DLL中的函數被正確導出,它也無法找到該方法。當我在應用程序的附加依賴項中包含相應DLL的.lib文件路徑時,錯誤得到解決,應用程序正常工作。.lib文件包含在使用DLL的應用程序中
但是,有些人告訴我,當我使用DLL時,不應該包含.lib文件。它就像靜態鏈接DLL一樣。
1)在應用程序中使用DLL時是否包含.lib文件,是不是很好的做法?
爲了避免包含這個.lib文件並避免爲每個可導出的方法調用GetProcAddess,他們建議我編寫一些包裝類並創建一個虛擬方法來從DLL中的類訪問該方法。我不明白這個方法。
2)任何人都可以解釋爲什麼我需要包裝類,以及這個抽象類如何提供我所需的功能?
在此先感謝。
兄弟代碼。第42條規則:布羅告訴你什麼是最好的,但你有疑問。閱讀[文檔](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682589%28v=vs.85%29.aspx)並證明Bro錯誤,以便他可以編寫更好的軟件。 – Drop