2012-11-05 36 views
1

我尝试从管理员的C++程序中调用系统程序,但是我只收到了“WOW64中不允许的操作”消息。 我曾尝试以下代码:C++命令行“在WOW64中不允许的操作”

system("netsh.exe interface ipv6 add v6v4tunnel IP6Tunnel 192.168.1.2 216.66.84.42"); 

CreateProcess(NULL, "netsh.exe interface ipv6 add v6v4tunnel IP6Tunnel 192.168.1.2 216.66.84.42", NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo) 

ShellExecute(NULL, "runas", "netsh.exe interface ipv6 add v6v4tunnel IP6Tunnel 192.168.1.2 216.66.84.42", "", NULL, SW_SHOW); 

,如果我在命令行称,它的工作原理

的Netsh.exe interface ipv6 add v6v4tunnel IP6Tunnel 192.168.1。 2 216.66.84.42

如何从我的C++程序运行系统命令?

为什么我无法将C++ System(),CreateProcess()和ShellExecute()与普通命令行中的start进行比较?

+0

我猜,因为命令行是实际的64位而不是WOW64(即32位)位)。尝试将您的应用编译为64位... – Goz

+0

_Guess_:将您的C++应用程序构建为64位二进制文​​件。 – hmjd

回答

1

“WOW64”的含义是“Windows 64上的Windows”还是32位应用程序的模拟器。它看起来像你试图从32位程序运行64位进程(或反之亦然)

+0

是的,它是Win64位。 –