我看到有許多不同的理由隱式地和顯式地鏈接.DLL。我目前使用Visual Studio 2015和C++與SFML。這是隱式鏈接和顯式鏈接的DLL之間的最佳做法
隱含: - 好的一面: 您可以訪問.DLL頭(.h)並知道它包含的函數。 鏈接和使用更容易。 不太容易出錯。 似乎是最常用的做法。
單側: 絕對需要.lib,.h和.dll文件進行鏈接。 由於文件更多,請佔用更多的磁盤空間。
明確: - 好的一面: 由於只需要.dll,佔用較少的磁盤空間。
Bad side: 由於可能使用dll可能沒有的函數以及加載正確,因此可能會出錯。 沒有辦法知道dll包含的函數,因爲您沒有標題。
1:我聽說明確鏈接是一種不好的做法。它是否正確?
2:我應該主要關注隱式鏈接嗎? 3:顯然,我對DLL的知識很少,有沒有更多的好的和壞的一面,我沒有看到關於隱式和顯式的方式'鏈接一個DLL?
4:因爲我計劃製作遊戲,將精靈表放入dll中以便使用指針加載紋理是一種很好的做法嗎?
你正在得到這個錯誤,確實是最好的嘗試。磁盤空間沒有區別,在這兩種情況下,您只需要部署DLL。在你的開發機器上顯式需求*更多*空間,你不能繞過需要聲明函數指針類型和代碼來挖掘出口。非常痛苦的代碼難以維護,特別是對於像SFML這樣的大型圖書館來說。您只使用顯式*,因爲該DLL可能沒有導出。從不需要SFML,因爲它是你複製DLL的。 –