在Windows 7 64位上,我一方面有一个visual basic 6标准exe(没有activex exe)
另一方面,我有两个oleaut32.dlls,一个在c:\ windows \ system32,另一个在c:\ windows \ syswow64。
它们有不同的尺寸
我怎么说(也许是哪个注册表项),什么oleaut32.dll将被加载为vb6 exe?
非常感谢提前
沃尔夫冈
答案 0 :(得分:3)
64位版本的Windows上存在c:\ windows \ syswow64目录中的文件。此目录的内容是32位安装的Windows正常附带的所有32位DLL。在64位Windows上运行32位进程时,系统将从c:\ windows \ syswow64目录加载32位DLL。否则对于本机64位进程,c:\ windows \ system32。 (是的,考虑到这些目录的名称,这让人感到困惑。名为“System32”的目录有64位DLL。名为SysWow64的目录是针对32位DLL的。)
简而言之,系统二进制文件(包括oleaut32.dll)是从c:\ windows \ syswow64加载的,是为您的旧版VB应用程序加载的(这是一个32位进程)。