64 비트 컴퓨터에서 실행하려고하는 32 비트 프로그램이 있습니다. vssadmin 명령을 실행하여 복원 지점 정보를 가져 와서 텍스트 파일에 저장합니다. 자, 내 32 비트 컴퓨터에서 잘 작동하고 내 친구의 64 비트 컴퓨터에서 테스트 중이 었는데 작동하지 않습니다.32 비트 프로그램에서 64 비트 프로세스 실행
64 비트 시스템에서 실행되는 32 비트 응용 프로그램에서 system()을 사용하는 경우 32 비트 명령 프롬프트를 사용합니까? 그게 명령 프롬프트에서 명령을 수동으로 실행 했으므로 제대로 작동하지 않을 것이라고 생각할 수있는 유일한 방법입니다.
이 경우에 해당합니까? 어쨌든 올바른 명령 프롬프트를 사용하도록 강제합니까?
은 사용하지 않습니다 내가 왜 이전에, 시스템은()하지 않습니다 말한대로 다른 컴퓨터에서 같은, 매트 피터슨 설명(), CreateProcess()를 사용합니다. – Jona
@JonathanD Rightio, createprocess()를 사용하는 것으로 바뀌고 있지만 문자열을 LPWSTR로 변환하는 데 문제가 있습니다. 나는 그것을하기로되어있는 코드를 발견했으나 그렇지 않습니다. 지금 나는'std :: wstring widestr = std :: wstring (vsscommand.begin(), vsscommand.end());을 시도하고있다. \t \t \t \t \t \t \t의 wchar_t * widecstr = widestr.c_str();'하지만'오류 2 오류 C2440 받고 있어요 : '초기화'에 '* const를 wchar_t를'에서 변환 할 수 없습니다 '은 wchar_t *'' – Mike
을 uchar은 st :: wstring을 wchar로 변환해야합니다.당신이 얻는 에러는 상수를 비 상수로 변환했기 때문입니다. 그 상수는 불가능합니다. D – Jona