2010-06-23 21 views
3

我在我的程序中讀取system32文件夾中的一些文件;和其中一個文件(C:\ Windows \ System32 \ gdi32.dll)演示了一個非常奇怪的行爲。當我從我的程序中讀取它時,它顯示310'784字節的大小;當我從資源管理器查看它的大小時,它顯示404'480字節的大小。 這怎麼可能?twofaced文件問題

回答

4

最可能的解釋是您的程序是32位,Explorer是64位。當一個32位程序在C:\Windows\System32(包含64位DLL)中打開文件時,它實際上被重定向到C:\Windows\SysWOW64(其中包含32位DLL)。您看到的尺寸差異是C:\Windows\SysWOW64\gdi32.dllC:\Windows\System32\gdi32.dll文件之間的差異。請參閱KB article 896456

+0

是的,你說的沒錯。但是,我的x32文件管理器顯示正確的文件大小(與Explorer相同)。它怎麼能這樣做? – skevar7 2010-06-23 06:51:08

+0

也許它會調用Wow64DisableWow64FsRedirection(http://msdn.microsoft.com/zh-cn/library/aa365743.aspx)。 – 2010-06-23 21:58:49