MSDN은 RegisterWindowMessage() 함수가 프로세스간에 보낼 메시지를 등록하는 데만 사용되는 것이 좋습니다. 메시지가 한 프로세스 내에서 전송되는 데 필요한 경우 WM_APP에서 0xBFFF 범위에서 안전하게 선택할 수 있습니다.RegisterWindowMessage를 남용하면 리소스가 고갈 될 수 있습니까?
그러나 코드베이스에서는 RegisterWindowMessage()가 한 프로세스 내에서 보낸 메시지에만 사용되는 경우가 종종 있습니다. 이것은 WM_APP..0xBFFF 범위의 메시지 식별자를 수동으로 배포 할 필요가 없으므로 RegisterWindowMessage()를 사용하는 것이 단순하다는 인식 때문에 이루어 졌다고 봅니다.
많은 응용 프로그램이 하나의 컴퓨터에서 실행되고 서로 다른 문자열로 RegisterWindowMessage()를 호출하면 RegisterWindowMessage()에서 반환 할 수있는 메시지 식별자 범위를 소모 할 수 있으며 그 중 일부는 실패를 나타내는 값을 반환합니까? WM_APP..0xBFFF 범위 메시지로 충분할 경우 RegisterWindowMessage() 메시지를 사용하는 유효한 이유는 무엇입니까?
은 C++ 빌더/델파이에서 해당 버그에 대해 알고하지 않았다! Nothing ... –
C++ Builder/Delphi (VCL)는'HInstance' ('GetModuleHandle')와 Thread ID로부터 메시지 이름을 생성합니다.정상 실행 파일의 경우'HInstance'는 다양하지 않고 스레드 ID의 범위가 제한되어 있으므로 VCL 응용 프로그램이 원자 테이블을 소모하지는 않습니다. VCL에 내장 된 DLL의 경우 더 그럴듯합니다. 또는 실행 파일에 ASLR이 설정된 경우 (Windows 8 인증의 요구 사항은 무엇입니까?) –