我在Win7 64位系统下安装了VS2010,用system()函数也是掉不起来
我是调用的win自身的exe程序,就是修改计算机sid的那个程序
system("C:\\Windows\\System32\\sysprep\\sysprep.exe")
9 个解决方案
#1
system("C:\\Windows\\Syswow64\\sysprep\\sysprep.exe");
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
#2
你pause下 看是不是一样的
#3
我的运行结果就是楼上的那样,但是把sysprep.exe放在别的目录下就能运行起来,不知道为什么
#4
2楼的,你的C:\\Windows\\Syswow64\\sysprep目录下有sysprep.exe这个可执行程序吗?我的win7 64位下没有,只有一个en-US的文件夹,里面是空的
#5
刚才看了,win7 64位系统它的系统目录确实是C:\\Windows\\Syswow64\\sysprep\\,但是这个目录下没有这个sysprep.exe这个可执行程序,我把sysprep.exe拷贝到C:\\Windows\\Syswow64\\sysprep\\这个目录后,程序被调起来了,这个怎么解决啊
#6
安装sysprep的人或设计sysprep安装程序的人不知道1楼的常识呗。
#7
微软文档是这样说的
您可能在想,"那么系统目录呢?同一个目录不能同时保存 32 位和 64 位版本的系统 DLL(例如,KERNEL32 或 USER32),不是吗"?通过执行可选择的文件系统重定向,WOW64 魔法般地为您解决了这个问题。来自 Win32 进程的文件活动通常转到 System32 目录,而不是在名为 SysWow64 的目录中。在内部,WOW64 会默默地更改这些请求以指向 SysWow64 目录。Win64 系统实际上有两个 \Windows\System32 目录 - 一个用于 x64 二进制文件,另一个用于 Win32 等效文件。
这看上去没什么,但会令人混淆。例如,我在某一点上使用了 32 位命令行提示(我自己并不知道)。当我针对 System32 目录中的 Kernel32.dll 运行 DIR 时,所得到的结果与我在 SysWow64 目录中执行相同操作后所得到的结果完全相同。我绞尽脑汁后才发现,文件系统重定向的工作方式就是这样。也就是说,即使我认为是在 \Windows\System32 目录中工作,但 WOW64 实际上已将调用重定向到 SysWow64 目录。顺便说一下,如果您确实希望从 x64 应用程序访问 32 位 \Windows\System32 目录,则 GetSystemWow64Directory API 会提供正确的路径。请一定阅读 MSDN® 文档,了解完整的信息。
#8
您可能在想,"那么系统目录呢?同一个目录不能同时保存 32 位和 64 位版本的系统 DLL(例如,KERNEL32 或 USER32),不是吗"?通过执行可选择的文件系统重定向,WOW64 魔法般地为您解决了这个问题。来自 Win32 进程的文件活动通常转到 System32 目录,而不是在名为 SysWow64 的目录中。在内部,WOW64 会默默地更改这些请求以指向 SysWow64 目录。Win64 系统实际上有两个 \Windows\System32 目录 - 一个用于 x64 二进制文件,另一个用于 Win32 等效文件。
这看上去没什么,但会令人混淆。例如,我在某一点上使用了 32 位命令行提示(我自己并不知道)。当我针对 System32 目录中的 Kernel32.dll 运行 DIR 时,所得到的结果与我在 SysWow64 目录中执行相同操作后所得到的结果完全相同。我绞尽脑汁后才发现,文件系统重定向的工作方式就是这样。也就是说,即使我认为是在 \Windows\System32 目录中工作,但 WOW64 实际上已将调用重定向到 SysWow64 目录。顺便说一下,如果您确实希望从 x64 应用程序访问 32 位 \Windows\System32 目录,则 GetSystemWow64Directory API 会提供正确的路径。请一定阅读 MSDN® 文档,了解完整的信息。
这看上去没什么,但会令人混淆。例如,我在某一点上使用了 32 位命令行提示(我自己并不知道)。当我针对 System32 目录中的 Kernel32.dll 运行 DIR 时,所得到的结果与我在 SysWow64 目录中执行相同操作后所得到的结果完全相同。我绞尽脑汁后才发现,文件系统重定向的工作方式就是这样。也就是说,即使我认为是在 \Windows\System32 目录中工作,但 WOW64 实际上已将调用重定向到 SysWow64 目录。顺便说一下,如果您确实希望从 x64 应用程序访问 32 位 \Windows\System32 目录,则 GetSystemWow64Directory API 会提供正确的路径。请一定阅读 MSDN® 文档,了解完整的信息。
#9
32位程序只能访问32位里面的目录,即使你调用运行system32下的cmd.exe还是启动的是SysWow64目录下的cmd.exe,你可以查看任务管理器中的名词带上了cmd.exe*32
唯一能解决的方法就是编译成64位的exe,用32位的启动然后用IsWow64Process判断系统是32位还是64位,接着再在64位中启动64位的exe去调用sysprep.exe
唯一能解决的方法就是编译成64位的exe,用32位的启动然后用IsWow64Process判断系统是32位还是64位,接着再在64位中启动64位的exe去调用sysprep.exe
#1
system("C:\\Windows\\Syswow64\\sysprep\\sysprep.exe");
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
#2
你pause下 看是不是一样的
#3
我的运行结果就是楼上的那样,但是把sysprep.exe放在别的目录下就能运行起来,不知道为什么
#4
2楼的,你的C:\\Windows\\Syswow64\\sysprep目录下有sysprep.exe这个可执行程序吗?我的win7 64位下没有,只有一个en-US的文件夹,里面是空的
#5
刚才看了,win7 64位系统它的系统目录确实是C:\\Windows\\Syswow64\\sysprep\\,但是这个目录下没有这个sysprep.exe这个可执行程序,我把sysprep.exe拷贝到C:\\Windows\\Syswow64\\sysprep\\这个目录后,程序被调起来了,这个怎么解决啊
#6
安装sysprep的人或设计sysprep安装程序的人不知道1楼的常识呗。
#7
微软文档是这样说的
您可能在想,"那么系统目录呢?同一个目录不能同时保存 32 位和 64 位版本的系统 DLL(例如,KERNEL32 或 USER32),不是吗"?通过执行可选择的文件系统重定向,WOW64 魔法般地为您解决了这个问题。来自 Win32 进程的文件活动通常转到 System32 目录,而不是在名为 SysWow64 的目录中。在内部,WOW64 会默默地更改这些请求以指向 SysWow64 目录。Win64 系统实际上有两个 \Windows\System32 目录 - 一个用于 x64 二进制文件,另一个用于 Win32 等效文件。
这看上去没什么,但会令人混淆。例如,我在某一点上使用了 32 位命令行提示(我自己并不知道)。当我针对 System32 目录中的 Kernel32.dll 运行 DIR 时,所得到的结果与我在 SysWow64 目录中执行相同操作后所得到的结果完全相同。我绞尽脑汁后才发现,文件系统重定向的工作方式就是这样。也就是说,即使我认为是在 \Windows\System32 目录中工作,但 WOW64 实际上已将调用重定向到 SysWow64 目录。顺便说一下,如果您确实希望从 x64 应用程序访问 32 位 \Windows\System32 目录,则 GetSystemWow64Directory API 会提供正确的路径。请一定阅读 MSDN® 文档,了解完整的信息。
#8
您可能在想,"那么系统目录呢?同一个目录不能同时保存 32 位和 64 位版本的系统 DLL(例如,KERNEL32 或 USER32),不是吗"?通过执行可选择的文件系统重定向,WOW64 魔法般地为您解决了这个问题。来自 Win32 进程的文件活动通常转到 System32 目录,而不是在名为 SysWow64 的目录中。在内部,WOW64 会默默地更改这些请求以指向 SysWow64 目录。Win64 系统实际上有两个 \Windows\System32 目录 - 一个用于 x64 二进制文件,另一个用于 Win32 等效文件。
这看上去没什么,但会令人混淆。例如,我在某一点上使用了 32 位命令行提示(我自己并不知道)。当我针对 System32 目录中的 Kernel32.dll 运行 DIR 时,所得到的结果与我在 SysWow64 目录中执行相同操作后所得到的结果完全相同。我绞尽脑汁后才发现,文件系统重定向的工作方式就是这样。也就是说,即使我认为是在 \Windows\System32 目录中工作,但 WOW64 实际上已将调用重定向到 SysWow64 目录。顺便说一下,如果您确实希望从 x64 应用程序访问 32 位 \Windows\System32 目录,则 GetSystemWow64Directory API 会提供正确的路径。请一定阅读 MSDN® 文档,了解完整的信息。
这看上去没什么,但会令人混淆。例如,我在某一点上使用了 32 位命令行提示(我自己并不知道)。当我针对 System32 目录中的 Kernel32.dll 运行 DIR 时,所得到的结果与我在 SysWow64 目录中执行相同操作后所得到的结果完全相同。我绞尽脑汁后才发现,文件系统重定向的工作方式就是这样。也就是说,即使我认为是在 \Windows\System32 目录中工作,但 WOW64 实际上已将调用重定向到 SysWow64 目录。顺便说一下,如果您确实希望从 x64 应用程序访问 32 位 \Windows\System32 目录,则 GetSystemWow64Directory API 会提供正确的路径。请一定阅读 MSDN® 文档,了解完整的信息。
#9
32位程序只能访问32位里面的目录,即使你调用运行system32下的cmd.exe还是启动的是SysWow64目录下的cmd.exe,你可以查看任务管理器中的名词带上了cmd.exe*32
唯一能解决的方法就是编译成64位的exe,用32位的启动然后用IsWow64Process判断系统是32位还是64位,接着再在64位中启动64位的exe去调用sysprep.exe
唯一能解决的方法就是编译成64位的exe,用32位的启动然后用IsWow64Process判断系统是32位还是64位,接着再在64位中启动64位的exe去调用sysprep.exe