C++ 빌더 2009에서 멀티 스레드 소켓 채팅을 작성 중입니다.
거의 완료되었지만 약간 문제가 있습니다. void *로 업 캐스트 한 CreateThread WinAPI 함수에 TMemo * 포인터를 전달해야합니다. 문제는 어떻게 내가 정말 할 수있다, NetThread 기능에 다음 C++ Builder2009에서 void *에서 TMemo *로 포인터를 올바르게 다운 캐스트 할 수 있습니까?
TMemo* MyMemo((HANDLE)lpParam);
TMemo* MyMemo((TMemo*)lpParam);
을
HANDLE xxx = MemoChat->Handle;
hNetThread = CreateThread(NULL, 0, NetThread, xxx, 0, &dwNetThreadId);
//...
하고 있지만, 작업 :(
을 돌아가신`t :
나는이 방법을 tryed 이 새로운 스레드에서 내 메모 구성 요소를 사용할 수 있도록 제대로 다운 캐스팅 했습니까?
나는 reintepret_cast를 사용하지 않는 것이 좋을 것이라고 생각했습니다. 그래서, 당신의 게시물은 내가 틀 렸음을 의미합니다. :) – chester89
네, reinterpret_cast <>()를 사용하지 않는 것이 가장 좋지만,이 방법을 사용해야하는 몇 가지 상황 중 하나입니다. 당신이 그것을 사용해야한다는 사실은 일이 끔찍하게 잘못 될 수 있음을 보여 주며, 당신이 정말로 올바른 유형으로 캐스팅하고 있는지주의 깊게 점검해야합니다. –
댓글을 주셔서 감사합니다. 많은 도움이되었습니다. – chester89