[C++工程] x86向x64移植, 系统DLL版本怪异,但工作正常.
Hi all,
有一个32位老程序要移植到64位上,我在 WIN XP & VS2005 & 活动解决方案平台x64 上编译出EXE和DLL,COPY到一台WIN2003 x64 的 F:\Program Files (x86)\XXXXXX 下运行. works just fine.
然后我在x64机器上用depends工具(64位版)view了一下DLL,在面版里发现我自己的DLL,cpu显示为x64 ,但是其depend的系统DLL,比如说KERNEL32.DLL是在windows\syswow64下的,WINMM.DLL是windows\system32下的, 所有系统DLL CPU显示均为X86.
我知道syswow64是windows-on-windows 64的意思, 里面放的DLL用来兼容32位程序.而system32里是放64位版本的DLL.
然后我跑去用depends工具(64位版)view了一下windows\system32\kernel32.dll发现cpu显示为x86...好象所有的系统DLLCPU都是显示x86,难道不应该是x64吗?
我在winxp x86上编译时,导入的系统DLL的导入库(比如说winmm.lib wininet.lib)这些应该都是32位的.
question#1 以前没有做过X86 TO X64, 请问, 以上情况是正常的吗?
question#2 把程序代码COPY到x64的机器上运行vs for x64编译出来的 EXE和DLL 所depend的系统DLL是什么样的?(抱歉,我虽然有台x64的2003,但不能在上面装VS,更不能COPY代码过去编译)
Thanks in advance...