0

以下の関数を使用してアプリケーションを単純に起動しようとしていますが、正しく動作していないようです。デスクトップからテスト アプリを起動しませんが、ダウンロードのサブ フォルダーに移動すると正常に動作しました。構成ファイルからディレクトリ情報を取得し、別のフォルダーからテストアプリを起動できることを考えると、ディレクトリ情報とは何の関係もないと思います。

bool StartTest(){
    char WOW_PATH[MAX_PATH];
    char WOW_PATH_FULL[MAX_PATH];
    STARTUPINFO SUI;
    PROCESS_INFORMATION PROCINFO;

    SUI.cb          = sizeof(STARTUPINFO);
    SUI.lpReserved  = 0;
    SUI.lpTitle     = 0;
    SUI.dwFlags     = STARTF_RUNFULLSCREEN;
    SUI.wShowWindow = SW_SHOW;
    SUI.cbReserved2 = 0;
    SUI.lpReserved2 = 0;

    ZeroMemory(&PROCINFO,sizeof(PROCINFO));

    ifstream File;
    File.open("config.txt");
    File.getline(WOW_PATH,MAX_PATH);
    File.close();

    strcpy(WOW_PATH_FULL,WOW_PATH);

    strcpy(WOW_PATH_FULL,"\Test.exe");

    if(!CreateProcess(WOW_PATH_FULL,0,0,0,false,0,0,WOW_PATH,&SUI,&PROCINFO))
        return 0;

    CloseHandle(PROCINFO.hProcess);
    CloseHandle(PROCINFO.hThread);

    return 1;
}
4

1 に答える 1

3

次の行では、バックスラッシュをエスケープする必要があると思われます。2 番目の呼び出しは、strcpy ではなく、strcat である必要があります。

strcpy(WOW_PATH_FULL,WOW_PATH);
strcpy(WOW_PATH_FULL,"\Test.exe");

修正は次のとおりです。

strcpy(WOW_PATH_FULL,WOW_PATH);
strcat(WOW_PATH_FULL,"\\Test.exe");
于 2013-04-26T02:28:05.237 に答える