안녕하세요 어린 프로그램머 찌께다시입니다.
좀 길군요... 지루하시더라도 이런 사람도 있구나하고 한번 읽어주시고 도사님들의
현명한 충고 부탁드리겠습니다.
여러 델파이 도사님들의 충고를 듣고자 이렇게 글을 올립니다.
같은 이름의 여러 실행모듈이 있을 경우 이를 구분해서 찾아내거나 이들중 하나하고만
메세지를 주고 받을 수 있는 방법을 알고 싶습니다.
이번에 호스트에 접속할 수 있는 Emulator을 만들고 있습니다.
이 Emulator는 SDI로 호스트에 접속을 시도 할 때만다 Session을 구분하고 여러개의
실행 모듈을 갖도록 했습니다.(넷텀을 써보셨지요...비슷함)
그런데 문제는 여기서 나오는데... 제 Emulator은 외부 Application에서 이 Emulatorf를
조작 할 수 있도록 만들고 있습니다. 약간의 개념도 를 그려보면
┏━━━━━━━━━┳━━━┳━━━━━━━━━┳━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃
┃Emulator Sess - A ┃ ┃Emulator Sess - B┃ ┃Emulator Sess - C ┃ ...
┃ ┃ ┃ ┃ ┃ ┃
┣━━━━━━━━━┛ ┗━━━━━━━━━┛ ┗━━━━━━━━━┫
┃ ┃ ┃ ┃ ┃
┃ ┗━━━━━━━━━━━━━━╋━━━━━━━━━━━━━┛ ┃
┣━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━┫
┃ ┃
┃ Emulatore의 실제 dll함수 엔진부분 ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┃dll 함수가 호출되었다. 메세지를 알리고
┃실제 처리는 엔진부분에 맞김
┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ Emulatore의 실제 dll함수 엔진부분 ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┃ Emulator를 제어하는 dll 함수 Call
┃
┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ 에물레이터를 제어하는 외부 Application ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
나름데로 열심히 그리긴 했는데 이거 시간이 좀 걸리네요... 헤헤헤~~~!
에물레이터가 여러개 실행되었을 경우 어느 특정 Session부분하고만 통신을 하고 싶다는 것입니다.
암튼 저는 외부 프로그램에서 session A 하고 Connect한 뒤의 모든 사항은 Session A하고만
통신을 하도록 하고 싶습니다.
문제는 여기 이부분인데요 dll과의 통신은 메세지 형태로 되는데 32bit는 Broadcast 메세지 전달이
가능한데 16bit이게 안되더군요
FindWindow로 찾아도 처음 실행된 프로그램 handle만 넘겨주고 다음 Session에는 handle틀려 메세지를
보네고 싶어도 보낼수 없습니다....아닌가..
암튼.. 제가 알기로 같은 클래스 이름을 가지더라도 윈도우 헨들은 다틀리고 인스턴트도 틀린것으로
알고 있는데...
외부프로그램에서 이 같은 클래스 이름을 가지는 여러개의 실행모듈들의 헨들이나.. 구분할 수 있는
방법이 혹시 없을까요...
도사님들 꼭 한번 저의 사정을 읽어 주십시요....
답변 기다리 겠습니다.
어린 프로그래머 -----찌께다시------
|