-
[MFC] CreateProcess() 핸들 누수 수정 : C6335 leaking process information handle개발 2022. 8. 12. 13:55반응형
MFC
C6335 leaking process information handle 메시지 처리하기
다른 사람 소스 가지고 작업 중에 해당 메시지가 발생했다
이 역시도 릴리즈 모드에서는 큰 영향은 없지만,
옛날 부터 MFC는 메모리 Leak 에 민감했던지라 해결해야 겠다 싶었다
코드를 찬찬히 살펴보니
CreateProcess() 에서 반환된 프로세스 핸들 값을 closehandle 해주지 않았을 경우에 발생한다
CreateProcess function 마지막 파라미터로 반환되는 PROCESS_INFORMATION 에는 새로 생성되는
process의 process handle 과 main thread handle 값이 들어 있다
해당 프로세스를 더 이상 사용하지 않을 경웨는 process와 thread handle 값 둘다 closehandle로 닫아주어야
handle count 누수가 발생하지 않는다
//예제
// Start the child process.
if( !CreateProcess( "C:\\WINDOWS\\system32\\calc.exe",
NULL,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si, // Pointer to STARTUPINFO structure.
&pi ) ) // Pointer to PROCESS_INFORMATION
{
puts("Error");
return;
}
// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );CreateProcessA function (processthreadsapi.h) - Win32 apps | Microsoft Docs
반응형'개발' 카테고리의 다른 글
eSIM 이란 무엇인가요? 편리한 점 알아보기 (1) 2022.12.02 [MFC] 현재 실행파일 이름 , 경로 얻어오기 - GetModuleFileName, PathFindFileName, PathRemoveExtension (0) 2022.09.02 MFC CloseHandle 0xC0000008: An invalid handle was specified (0) 2022.08.11 [C#] BCD타입이란? 문자열 BCD 변환하기 코드 예제 (0) 2022.03.31 윈도우10 로지텍 페블 블루투스 마우스 끊김 현상 해결 - 마우스 설정 변경 (0) 2021.07.27