Win7 64位操作系统下CreateProcess函数运行System32文件夹下批处理文件出错的原因
2012-08-09 14:50
411 查看
在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位应用中并不能使用它。
--------------------------------------------------------
[1]http://msdn.microsoft.com/en-us/library/aa384187.aspx
其原因在于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位应用中并不能使用它。
--------------------------------------------------------
[1]http://msdn.microsoft.com/en-us/library/aa384187.aspx
相关文章推荐
- Win7 64位操作系统下CreateProcess函数运行System32文件夹下批处理文件出错的原因
- Win7 64位系统下将可执行文件oflash.exe 复制到system32文件夹下出错的原因
- Createprocess 函数运行出错的原因和解决办法
- win7 64位操作系统下git的安装 显示文件版本和正在运行的windows版本不一致
- win7 64位“不是内部命令和外部命令,也不是可运行的程序和批处理文件”错误的解决办法。
- win7操作系统上,批处理文件,直接双击的时候,能运行起来。但是以管理员身份运行的时候,都闪退。请问,这是怎么回事?
- 无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错--解决办法
- 虚拟机安装Debian7 后无法使用共享文件夹,提示:无法更新运行时文件夹共享状态: 在客户机操作系统内装载共享文件夹文件系统时出错。
- 关于在64位win7下运行Virtualbox安装系统时提示出错Unable to load R3 module D:\VirtualBox/VBoxDD.DLL (VBoxDD): GetLastE
- 64位机器制作文件系统出错运行mkubimage-mlc2
- 复制文件到c盘windows文件夹下的system32的批处理写法
- 根据不同的操作系统(64/32),设置文件以64位运行。又可解决问题:“试图加载不正确的程序”。
- SVN 不是有内部或外部命令,也不是可运行的程序或批处理文件。 Win 7-64位
- win7 spark运行本地程序文件出错 error:avaSparkContext. : java.lang.NullPointerException
- 关于在64位win7下运行Virtualbox安装系统时出错(提示VBoxDD.DLL错误)的解决方案。
- 同一程序,idle可以运行,pycharm不可以运行的原因(不要以库函数命名文件)
- win7下出现'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法
- Win7操作系统上VMware运行移动硬盘上的虚拟机文件访问权限设定
- WIN7的CMD界面下输入ipconfig后提示不是内部或外外部命令,也不是可运行的程序或批处理文件
- ubuntu下将一个文件复制到另一个文件夹复制出错,原因是用户对文件夹的权限不够