이쁜이 님이 쓰신 글 :
: 안녕하십니까?
: 핸들에 대하여 질문합니다.
:
: if((hCom1 = CreateFile(CommName, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
: 0, NULL))
: == INVALID_HANDLE_VALUE) Showmessage("Create error!");
:
: 위와 같이 생성된 핸들을 다른 프로그램(DLL)에서 알수있는 방법이 있는지 알고 싶어서요.
: 비가 부슬부슬 내리는 토요일에...
:
: 이쁜이.
임펠리테리입니다.
파일 핸들은 윈도우즈 커널의 전역 객체이므로 다른 프로세스에서도 당근 유효합니다. 어떤 데이터를 다른 프로세스로 전달하려면 인터프로세스 통신에 속하는 몇가지 방법 중 하나를 쓰시든지, WM_COPYDATA 메시지를 쓰든지, 혹은 메모리 맵드 파일을 이용하는 방법이 있습니다.
하지만, 아마도 하시려는 일이 아마도 오픈된 파일을 공유하려는 목적인듯 하므로 차라리 메모리 맵드 파일을 직접 사용하시는 것이 가장 좋은 방법입니다. 원래 메모리 맵드 파일이 그런 목적으로 만들어진 것이니까요.
5176번 답변에 홍용혁님이 쓰신 메모리 맵드 파일 예제가 있으니 참고하시면 되겠네요.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=5176
그럼 참고하시길...
|