コマンドプロンプトの引数の文字数の最大値

[戻る]
諸学 2005/05/15(日) 19:09:12
コマンドプロンプトの引数の文字数の最大値を教えてください。
パラメータが250文字のくらいなのにかかわらずエラーになりました。

まきじ 2005/05/15(日) 19:57:43
argv の事でしょうか?
最大値とか決まってないと思います。
メモリが許す限り可能だと思いますが、、、

Ban 2005/05/15(日) 22:36:37
処理系(コンパイラ)次第だと思います。

iijima 2005/05/15(日) 23:29:39
処理系のほかに、どんなエラーが出たのか、文字数が多いことがエラーの原因であると
判断した理由を説明していただかないと、話が進みません。

諸学 2005/05/16(月) 00:20:49
遅れてすみません。
これがソースです。

bool f_CreateProcess( CString iPath, CString iCommandParam ){


    
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    // コマンドプロンプトを非表示に設定する。
    // 表示したい時は、これをコメント化する。
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;

    // バッチファイルを実行する
    if( !CreateProcess( iPath,                // No module 
name (use command line).      
                    
    //iCommandParam.GetBuffer( iCommandParam.GetLength() ),// Command 
line.
                        iCommandParam.GetBuffer
( sizeof(iCommandParam) ),// Command line.
                        NULL,        
        // Process handle not inheritable. 
                        NULL,        
        // Thread handle not inheritable. 
                        FALSE,        
        // Set handle inheritance to FALSE. 
                        0,        
            // No creation flags. 
                        NULL,        
        // Use parent's environment block. 
                        NULL,        
        // Use parent's starting directory. 
                        &si,        
        // Pointer to STARTUPINFO structure.
                        &pi )        
        // Pointer to PROCESS_INFORMATION structure.
    ) 
    {
        // AfxMessageBox ("CreateProcess failed.", MB_OK);
        AfxMessageBox ("解凍処理失敗しました。", MB_OK);
        return false;
    }

    // プログラム実行終了まで待機
    CloseHandle( pi.hThread );
    WaitForSingleObject( pi.hProcess, INFINITE );

    // Close process and thread handles. 
    CloseHandle( pi.hProcess );

    return true;
}

Blue 2005/05/16(月) 00:32:18
>//iCommandParam.GetBuffer( iCommandParam.GetLength() ),
>iCommandParam.GetBuffer( sizeof(iCommandParam) ),
上をコメントにして下にしたのはなんか理由があるのでしょうか?
sizeof( iCommandParam ) は sizeof( CString ) ですがどうなのでしょうか?

それと、出力されたエラーを提示してください。

古いスレッドには追加発言できません。