CreateProcess を介して別のアプリを呼び出すアプリに取り組んでいます。私はWin7 64ビットを使用しています。呼び出されたアプリは、パイプを介してデータを受信するコンソールです。呼び出しコードは次のようになります。
STARTUPINFOA si;
PROCESS_INFORMATION pi;
GetStartupInfoA(&si);
memset( &si, 0, sizeof(STARTUPINFOA) );
memset( &pi, 0, sizeof(pi) );
si.cb = sizeof(STARTUPINFOA);
char cmdline[MAX_PATH];
sprintf(cmdline,"\"%s\" %s",AppToCallName,PipeName);
BOOL bRet = CreateProcessA(NULL,cmdline,NULL,NULL,FALSE,CREATE_NEW_CONSOLE|CREATE_BREAKAWAY_FROM_JOB,NULL,NULL,&si,&pi);
私のコンピューター (2 台で試しました) では、動作します。他のものでは、(bRet=)FALSE を返し、GetLastError() は 5 を返します。これは ACCESS_DENIED を意味します。
どこに問題があるのか わかりません。そして悪いことに、それは私にとってはうまくいくので、デバッグすることはできません!
私のセットアップは次のとおりです。
Win7 プロ 64 ビット SP1
VStudio 2005 SP1
(使用コンパイラ: Intel C++ 9.1
必要に応じて、より多くのセットアップ情報を提供させていただきます。
何か案が?