Vista下面的msxml.dll跑哪裏去了?

Vista下的Visual C++開發人員,可能或多或少的都遇到過這個問題,之前導入XML庫的代碼出現問題。


異常:
fatal error C1083: Cannot open type library file: 'msxml.dll': No such file or directory

原因就是因爲在Vista下面,已經不存在msxml.dll文件了。可以在MSDN的論壇上找到相關的討論,請點這裏

 

你可以從手邊的XP系統上覆制這個文件到Vista系統的/Windows/System32目錄,並且手動註冊,關於如果在Vista上使用regsvr32,請Google。

另一個辦法,在Vista系統上使用新版本的XML庫msxml6.dll,這個文件是隨系統一同安裝的。

如果你堅持要使用XP系統上的XML庫,就需要讓程序根據不同系統來自動加載正確的XML庫。

根據系統中的_WIN32_WINNT宏

Vista

#defines _WIN32_WINNT == 0x0600

Windows XP

#defines _WIN32_WINNT == 0x0501

詳情查看這裏

這樣,原來的代碼可以用下面的代碼代替:

這樣一來,編譯器會根據不會的環境導入正確的XML庫。雖然給程序員帶來了一些麻煩,聊勝於無吧。

譯自:http://darrensargent.com/blog/?p=8

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章