|
안녕하세요 항상 도움을 받고있는 초짜입니다.
이곳에서 알려주신대로 볼랜드 C++로 ClientSocket을 포함하는 DLL을 만들어 VC++에서 정적으로
로드하여 사용하는데 까지 성공하였습니다. 감동감동~~ ^^
그런데 문제는 ClientSocket을 가지는 DLL (DLL이름, 포트넘버 등등 모두 틀립니다)을 만들어서 같은 방법으로
VC++ 프로젝트에 추가하여 띄웠더니 마지막에 오픈한 Socket만 열리네요 ㅠㅠ
그니깐 예를들어 DLL 1 번의 소켓을 여는것이 Open1() 이고 DLL 2번 소켓을 여는것이 Open2()일때
Open1();
Open2();
이렇게 하면 Open2()에 있는 소켓만 열리고
Open2();
Open1();
이렇게 하면 Open1()에 있는 소켓만 열립니다.
나름대로 원인을 찾다 보니까 Thread인 경우도 같은 증상이 일어납니다.
예를들어
DLLThreadRun_1();
DLLThreadRun_2();
이렇게 하면 Thread가 2만 돌고
DLLThreadRun_2();
DLLThreadRun_1();
이렇게 하면 Thread가 1만 도네요 ㅠㅠ
여러개의 DLL을 써도 Thread는 1개 밖에 사용할 수 없는건가요?
혹시 볼랜드 C++로 만든 DLL을 VC++에서 사용할때 VC++에서 볼랜드용 DLL은 전부 Thread를 같다고 인식
하는건가요?
이게 어찌된 현상인지 아시는 고수님들의 답변을 기다리고 있습니다.
도와주세요~~
|