コマンドプロンプトの引数の文字数の最大値を教えてください。
パラメータが250文字のくらいなのにかかわらずエラーになりました。
argv の事でしょうか?
最大値とか決まってないと思います。
メモリが許す限り可能だと思いますが、、、
処理系(コンパイラ)次第だと思います。
処理系のほかに、どんなエラーが出たのか、文字数が多いことがエラーの原因であると
判断した理由を説明していただかないと、話が進みません。
遅れてすみません。
これがソースです。
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;
}
>//iCommandParam.GetBuffer( iCommandParam.GetLength() ),
>iCommandParam.GetBuffer( sizeof(iCommandParam) ),
上をコメントにして下にしたのはなんか理由があるのでしょうか?
sizeof( iCommandParam ) は sizeof( CString ) ですがどうなのでしょうか?
それと、出力されたエラーを提示してください。