首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

如何單步執行外部程式:C++Builder 實作範例

     編輯:關於C++

使用 Windows API CreateProcess 啟動外部程式並等待結束,適用於 C++Builder(VC 需調整訊息框呼叫)。

核心程式碼

void contour() {
    char ln[100], str[100] = "", path[100];
    sprintf(ln, "%s\\%s", getcurrentdir(), "watson.exe");
    sprintf(path, "%s", getcurrentdir());
    chdir(path);

    STARTUPINFO startinfo = { sizeof(STARTUPINFO) };
    PROCESS_INFORMATION procinfo;
    startinfo.dwFlags = STARTF_USESHOWWINDOW;
    startinfo.wShowWindow = SW_HIDE;

    strcat(str, "不能執行:");
    strcat(str, ln);

    BOOL make = CreateProcess(NULL, ln, NULL, NULL, FALSE, 0, NULL, NULL, &startinfo, &procinfo);
    if (!make) {
        MessageBox(NULL, str, "提示", MB_OK);
    }
    WaitForSingleObject(procinfo.hProcess, INFINITE);
}

關鍵點

  • STARTUPINFO.cb 必須設為結構大小。
  • dwFlags=STARTF_USESHOWWINDOW + wShowWindow=SW_HIDE 隱藏視窗。
  • CreateProcess 第二參數為命令列字串,第一參數為 NULL 表示從命令列解析執行檔。
  • WaitForSingleObject 同步等待子進程結束。
  • 錯誤處理:CreateProcess 失敗彈出訊息框。

此範例展示基本啟動與同步,實際專案可擴充標準輸入/輸出重導向、退出碼檢查等。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved