私はdll内にこの関数を持っています:
int createChildProcess()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
int res;
si.cb=sizeof(STARTUPINFO);
STARTUPINFO* ptr=&si;
if(!CreateProcess(L"c:\\windows\\notepad.exe", NULL, 0, 0, false, CREATE_NEW_CONSOLE, 0, 0, &si, &pi))
{
mylog << "CreateProcess error: " << GetLastError() << std::endl;
res = 0;
}
else
res = pi.dwProcessId;
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return res;
}
そして、私は2つの問題を見つけました:
1) 関数が最初に呼び出されたときは、常にエラー コード 87 (パラメーターが正しくありません) を返します。
2) 2 回目は機能しますが、一時停止状態の子プロセスが作成され、親プロセスの CPU 使用率が 100% になります。
私はwinXP sp3でテストしており、私のdllはvs 2010でコンパイルされました.
助けはありますか?