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