2010-07-19 2 views
0

나는 명령이있어, 나는 C 프로그램을 사용하여 같은 것을 실행해야한다. cmdline 변수에 인수를 사용하여 전체 명령을 저장했습니다. 시스템 (cmdline)을 사용할 때 정상적으로 작동합니다. 그러나 사용에 대한 다음 RET = CreateProcess를 (NULL, 있는 CmdLine, 가 TRUE (LPSECURITY_ATTRIBUTES) NULL, (LPSECURITY_ATTRIBUTES) NULL, NORMAL_PRIORITY_CLASS, NULL, NULL, & 시작, & PINFO);시스템 및 CreateProcess()

GetLastError()에서 반환 코드가 2로 표시됩니다.

누군가가 이유를 말할 수 있습니까? 미리 감사드립니다.

+0

명령은 무엇입니까? – sharptooth

+0

CreateProcess에 사용 된 전체 코드를 게시 할 수 있습니까? 시작과 pinfo 구조를 제로로 만들지 않았을 수도 있습니다. –

+0

명령이 사용자 정의입니다. 또한, 시작을 호출하기 전에 시작 및 pinfo 구조를 제로화했습니다. – Pradeep

답변

1

아마도 프로그램 이름에 공백이 포함되어있을 수 있습니까?

MSDN : lpApplicationName이 NULL이면 명령 줄의 첫 번째 공백으로 구분 된 토큰이 모듈 이름을 지정합니다. 공백이 포함 된 긴 파일 이름을 사용하는 경우 따옴표로 묶은 문자열을 사용하여 파일 이름이 끝나는 위치와 인수가 시작되는 위치를 나타냅니다.

+0

+1 OP가 파일을 찾을 수 없으면 가장 가능성있는 설명입니다. –

관련 문제