收获:关于32bit 64bit 重定向及注册表操作问题
2014-08-12 22:46
309 查看
当32bit应用程序在4bit系统下运行时,是不能直接访问64的一些文件夹的,32位的程序实际运行在一个虚拟的空间中,通过32bit下的NTDLL32.DLL来转换为64bit可以懂的应用控制权再交给64位下的ntdll32.dll,32位的应用运行时,会产生重定向,访问system32目录时,会重定向到SysWow64这个目录,也就是说我们是无法直接访问system32的,但是有两种方法可以实现访问
一、解除重定向 Wow64DisableWow64FsRedirection
这个函数在kernel32.dll中,这是64位下的DLL,32位下的kernel32.dll是没有这个导出函数的,所以,当程序运行在32位的系统中时,就会出现无法定位到输入点 这样的错误
二、在64位系统下使用SysNative代替System32就可以访问到真正的System32目录
c:\windows\SysNative 这个目录实际是不存在的,但是在程序中通过访问它,就可以直接访问到System32这个目录。这种方法同样要判断系统是否为64位,但是使用的API是32位支持的,所以运行时不会报错,如果运行在32位下,就会出现找不到目录的情况,所以一定要先进行判断再使用。
关于注册表的问题
一、注册表重定向
一、解除重定向 Wow64DisableWow64FsRedirection
这个函数在kernel32.dll中,这是64位下的DLL,32位下的kernel32.dll是没有这个导出函数的,所以,当程序运行在32位的系统中时,就会出现无法定位到输入点 这样的错误
二、在64位系统下使用SysNative代替System32就可以访问到真正的System32目录
c:\windows\SysNative 这个目录实际是不存在的,但是在程序中通过访问它,就可以直接访问到System32这个目录。这种方法同样要判断系统是否为64位,但是使用的API是32位支持的,所以运行时不会报错,如果运行在32位下,就会出现找不到目录的情况,所以一定要先进行判断再使用。
关于注册表的问题
一、注册表重定向
LONG
RegOpenKeyEx(
相关文章推荐
- 32bit程序在64bit操作系统下处理重定向细节_注册表操作[2]
- INNOSETUP 操作注册表 重定向至Wow6432Node问题
- 字符集问题的初步探讨(七)--关于字符集更改的内部操作
- 关于登录进去后不能操作问题的回复
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 一个关于重定向的问题研究,应该具有实用性
- 关于使用ODBC+VC操作DBF文件问题小结
- 关于数字证书操作的问题
- 给初学者:VB如何操作WEB页的浏览提交———七:题外话,关于小甜饼和不打开新IE窗口问题
- Linux内核中关于数据结构操作的一个问题
- 字符集问题的初步探讨(七)----关于字符集更改的内部操作
- 关于流水帐表序列号生成时的并发操作问题
- 一个关于重定向的问题研究,应该具有实用性
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 关于Access2003数据集操作的一个简单问题
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 关于操作Access数据报System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误异常问题
- [求助]关于eclipse下开发串口操作插件的问题
- 关于文件操作的问题
- 有关于c#操作excel的问题 请各位大虾指教