c ++可执行文件的过程没有正确关闭

时间:2016-06-17 09:06:11

标签: c++ process

在我的程序中,我在关闭前一个窗口的同一个窗口中启动其他c ++应用程序。有时我在任务管理器中看到的过程不会关闭。所以我会有很多同名的流程。我怎么能避免这个?

startup("../folder/c++_executable.exe");
exit(0);
void startup(LPCTSTR lpApplicationName)
{
   // additional information
   STARTUPINFO si;
   PROCESS_INFORMATION pi;

   // set the size of the structures
   ZeroMemory( &si, sizeof(si) );
   si.cb = sizeof(si);
   ZeroMemory( &pi, sizeof(pi) );

  // start the program up
  CreateProcess( lpApplicationName,   // the path
    "",             // 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
    ;
    // Close process and thread handles.
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
}

1 个答案:

答案 0 :(得分:0)

我认为您需要检查它为什么不关闭 - 获取VisualStudio / WinDBG并附加到未关闭的进程并检查它挂起的位置。