我需要在我的應用程序中使用一些針對msvcrt.dll編譯的DLL。我已經試過了,好像好像是。我的第一個擔心是對msvcrt.dll有額外的依賴性;我已經包括Visual Studio 10運行時庫,並希望不必添加更多。我知道msvcrt.dll總是在窗口系統文件夾中,但我應該依靠這個嗎?將針對msvcrt.dll編譯的庫鏈接到Visual Studio 10 C++應用程序中
以下是有關庫頁:
http://www.zlatkovic.com/libxml.en.html
我可以下載源代碼並從頭開始編譯,可以這樣做長期的,但現在我想,以確保不會有什麼連接這些庫和使用DLL的問題。
有該網頁上一點,上面寫着:。
「每一個程序編譯使用這些二進制文件必須使用相同的運行時間,除非你喜歡你的應用程序崩潰,請設置您的項目使用MSVCRT.DLL如果您出於某種原因必須使用不同的運行時,那麼您必須自己獲取源代碼並編譯libxml和朋友。「
這就是我所擔心的。它可能看起來是很好的時刻,但我擔憂的時候是出於對具有不同設置其他系統野外會發生什麼事..
+1指出所有DLL的最終依賴於msvcrt.dll – 2013-03-09 14:10:14
謝謝,這幾乎涵蓋了我的顧慮。關於內存分配和釋放,是否可以使用庫中包含的函數調用完成?在這種情況下,我從我的應用程序調用:xmlInitParser(),後來分別分配和釋放內存的xmlCleanupParser()。 – Mark 2013-03-09 14:41:40
是的,如果DLL A調用釋放內存的DLL B中定義的函數,那麼內存是由DLL B發佈,所以(假設B是分配它的人),你是免費的。 :)只要它通過這樣的包裝函數完成,你確保相同的DLL將執行這兩個操作 – jalf 2013-03-09 14:46:35