2008年1月21日 星期一

Runtime Error R6034

目前心得:
http://msdn2.microsoft.com/zh-tw/library/ms235624(VS.80).aspx
VC2005的應用程式需要透過manifest來使用某些library(MFC,ATL,CRT)
這些dll會放在WinSxS folder中
要使用必須要用manifest來指定需要什麼dll
執行時會透過manifest到WinSxS folder中去找對應版本的dll來使用
如果不用manifest直接把dll丟到binary的folder就會造成錯誤 (R6034)
manifest可以embed在binary中 也可以寫成external file

之前碰到的問題:
一開始是顯示找不到msvcr80.dll , 代表缺少這個dll
所以要修改manifest檔:
在project>properties>configuration properties>linker>manifest file>additional manifest dependencies中加入
type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0'processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'

(version要自己到 WinSxSfolder去看 選擇其中一個版本)
這樣就會幫我們在manifest file中加入這段 接下來再build一次就可以執行了

1 則留言:

米粒 提到...

由此可見你記憶力
不是很好