我调用
if( !CreateProcess( TEXT(test.exe), TEXT("4"), NULL,NULL,FALSE,0,NULL,NULL,&si,&pi ))
往test.exe中传入参数4,我怎么在test.exe中获取到4?
该test.exe是win32 application.
开始的函数为:
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)我试了输出lpCmdLine,都是为空!

解决方案 »

  1.   

    if( !CreateProcess( TEXT("test.exe 4"), NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi ))
      

  2.   

    char strcommandline[255];
    strcpy(strcommandline,GetCommandLine( ));
    //然后自己解析strcommandline,可以使用CCommandLineInfo
      

  3.   

    试试下面的代码:
    STARTUPINFO si = {sizeof(si)};
    SECURITY_ATTRIBUTES saProcess,saThread;
    char szPath[256]={0};
    saProcess.nLength = sizeof(saProcess);
    saProcess.lpSecurityDescriptor = NULL;
    saProcess.bInheritHandle = TRUE;saThread.nLength = sizeof(saThread);
    saThread.lpSecurityDescriptor = NULL;
    saThread.bInheritHandle = FALSE;strcpy(szPath,"test.exe /4");
    PROCESS_INFORMATION piProcess;
    CreateProcess(NULL,szPath,&saProcess,&saThread,FALSE,0,NULL,NULL,&si,&piProcess);
      

  4.   

    应该是
    1)使用GetCommandLine
    2)然后使用CString类来操作就可以了
      

  5.   

    似乎应该是这样的 if( !CreateProcess(  NULL,TEXT("test.exe 4"),NULL,NULL,FALSE,0,NULL,NULL,&si,&pi ))另外搂住这样的写法也没有问题,在试试看吧,可能是别的地方出了什么问题 ,lpCmdLine肯定会等于传入的参数的
      

  6.   

    test.exe 4
    test.exe /4
    两种都起不了test.exe.
      

  7.   

    错了,原来是第二个参数,两个都可启动,但是还是获取不到,
    用GetCommandLine()
    也获取不到,请大家继续,有没有验证通过的?
      

  8.   

    将所有的源代码发到:[email protected]
    我看看!