如题,在VC中如何调用.EXE文件,越详细越好。谢谢!

解决方案 »

  1.   

    CreateProcess具体参数我不记得了!
      

  2.   

    BOOL CreateProcess(
      LPCTSTR lpApplicationName,                 // name of executable module
      LPTSTR lpCommandLine,                      // command line string
      LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
      LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
      BOOL bInheritHandles,                      // handle inheritance option
      DWORD dwCreationFlags,                     // creation flags
      LPVOID lpEnvironment,                      // new environment block
      LPCTSTR lpCurrentDirectory,                // current directory name
      LPSTARTUPINFO lpStartupInfo,               // startup information
      LPPROCESS_INFORMATION lpProcessInformation // process information
    );
      

  3.   

    Example
    /* EXEC.C illustrates the different versions of exec including:
     *      _execl          _execle          _execlp          _execlpe
     *      _execv          _execve          _execvp          _execvpe
     *
     * Although EXEC.C can exec any program, you can verify how 
     * different versions handle arguments and environment by 
     * compiling and specifying the sample program ARGS.C. See 
     * SPAWN.C for examples of the similar spawn functions.
     */#include <stdio.h>
    #include <conio.h>
    #include <process.h>char *my_env[] =                /* Environment for exec?e */
    {
       "THIS=environment will be",
       "PASSED=to new process by",
       "the EXEC=functions",
       NULL
    };void main()
    {
       char *args[4], prog[80];
       int ch;   printf( "Enter name of program to exec: " );
       gets( prog );
       printf( " 1. _execl  2. _execle  3. _execlp  4. _execlpe\n" );
       printf( " 5. _execv  6. _execve  7. _execvp  8. _execvpe\n" );
       printf( "Type a number from 1 to 8 (or 0 to quit): " );
       ch = _getche();
       if( (ch < '1') || (ch > '8') )
           exit( 1 );
       printf( "\n\n" );   /* Arguments for _execv? */
       args[0] = prog;
       args[1] = "exec??";
       args[2] = "two";
       args[3] = NULL;   switch( ch )
       {
       case '1':
          _execl( prog, prog, "_execl", "two", NULL );
          break;
       case '2':
          _execle( prog, prog, "_execle", "two", NULL, my_env );
          break;
       case '3':
          _execlp( prog, prog, "_execlp", "two", NULL );
          break;
       case '4':
          _execlpe( prog, prog, "_execlpe", "two", NULL, my_env );
          break;
       case '5':
          _execv( prog, args );
          break;
       case '6':
          _execve( prog, args, my_env );
          break;
       case '7':
          _execvp( prog, args );
          break;
       case '8':
          _execvpe( prog, args, my_env );
          break;
       default:
          break;
       }   /* This point is reached only if exec fails. */
       printf( "\nProcess was not execed." );
       exit( 0 );
    }
      

  4.   

    ::WinExec("<此处加EXE。的全路径如 c:\\exmple.exe>",1);
      

  5.   

    main()
    {
     printf("ok le\n");
    }
    我刚学C,写得不好,呵呵
      

  6.   

    可以用三个函数,都是SDK函数:WinExec,ShellExecute和createprocess,具体参数可以查阅MSDN.
        WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如你用 SW_SHOWMAXMIZED方式去加载一个无最大化按钮的程序,就不会出现正常的窗体,但是已经被加到任务列表里了。
       ShellExecute较 WinExec灵活一点,可以指定工作目录,下面的Example就是直接打开 c:\temp\1.txt,而不用加载与 txt文件关联的应用程序,
    ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED)
    CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的Example:
     STARTUPINFO stinfo
    //启动窗口的信息
     PROCESSINFO procinfo //进程的信息
     CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,
    NORMAL_PRIORITY_
     CLASS,NULL,NULL, &stinfo,&procinfo)
      

  7.   

    用这个试试
    头文件包含#include"stdlib.h"
    在程序中用命令  system("***.exe");