2012-11-05 1 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()를 일반 명령 줄에서 시작으로 비교할 수없는 이유는 무엇입니까?

+0

명령 줄이 WOW64가 아닌 실제 64 비트이기 때문에 추측합니다. 비트). 응용 프로그램을 64 비트로 컴파일 해보십시오. ... – Goz

+0

_Guess_ : C++ 응용 프로그램을 64 비트 바이너리로 빌드하십시오. – hmjd

답변

1

"WOW64"는 "Windows on Windows 64"또는 32 비트 응용 프로그램 용 에뮬레이터를 의미합니다. 32 비트 프로그램에서 64 비트 프로세스를 실행하려는 것 같습니다 (또는 그 반대의 경우도 마찬가지입니다)

+0

예, Win64 비트입니다. –