关于在Windows7 64位操作系统下,读取system32下的文件失败,提示“系统找不到指定文件”。
2015-08-05 16:01
477 查看
现象:在Windows7 64位操作系统下,读取system32下的文件失败,提示“系统找不到指定文件”。
原因:在Windows7 64位操作系统下,VisualStudio编译32位应用,调用CreateProcess运行System32文件夹下批处理文件会失败,GetLastError返回值是2。查询Error Lookup返回信息:系统找不到指定文件。其原因在于64为操作系统对于32位程序调用System32下文件的处理方式[1]。对于64位操作系统来说,C:\Windows\System32文件夹不再是系统文件夹,而是为64位操作系统预留的。当同名的64位和32位DLL同时存在于一个系统之中时,system32用于存储32位DLL,并且这些DLL是为64位应用调用的。因为file system redirector机制的存在,SysWOW64透明化了不同位文件的调用。
解决方案:如果一个32位应用程序需要调用System32下的文件,最好改用Sysnative这个System32的别名,否则将调用失败。实际上,并不存在Sysnative这个文件夹,这只是Windows为32位应用开发者提供的一种便利,64位应用中并不能使用它。
原因:在Windows7 64位操作系统下,VisualStudio编译32位应用,调用CreateProcess运行System32文件夹下批处理文件会失败,GetLastError返回值是2。查询Error Lookup返回信息:系统找不到指定文件。其原因在于64为操作系统对于32位程序调用System32下文件的处理方式[1]。对于64位操作系统来说,C:\Windows\System32文件夹不再是系统文件夹,而是为64位操作系统预留的。当同名的64位和32位DLL同时存在于一个系统之中时,system32用于存储32位DLL,并且这些DLL是为64位应用调用的。因为file system redirector机制的存在,SysWOW64透明化了不同位文件的调用。
解决方案:如果一个32位应用程序需要调用System32下的文件,最好改用Sysnative这个System32的别名,否则将调用失败。实际上,并不存在Sysnative这个文件夹,这只是Windows为32位应用开发者提供的一种便利,64位应用中并不能使用它。
相关文章推荐
- Multiplying by Rotation
- Android adb的一些使用方法
- Codeforces 115A- Party
- python eval函数 动态执行python语句
- python中的字典详细介绍
- bundle install 老是中断,可以在gemfile里面把source换成taobao源,可以自动安装
- 上拉页面自动加载
- 全民消消乐电信SDK对接
- Linux IO实时监控iostat命令详解
- 学习日记8.5
- 关于命令行参数
- 生成framework ,脚本
- 求位数 hdu 1018 Big Number
- android 读取本地大图片时防止oom方法
- linux下vi的复制,黏贴,删除,撤销,跳转等命令-费元星
- 如何安装虚拟机VMware
- zoj 3135 Party of 8g 最大点权独立集
- linux epoll事件模型详解(转载)
- 杭电acm 2504又见GCD
- DP ACdream 喵哈哈村的挑衅