안녕하세요.
제가 C++ Builder 6.0에서 VCL을 사용한 DLL을 만들었습니다.
TClientSocket, TTimer 등등.. 사용했습니다.
그리고 그렇게 만들어진 DLL에서 클래스를 뱉어내는 함수를 만들어서 사용하고 있습니다.
참조 : http://edn.embarcadero.com/article/20165
이 DLL이 C++ Builder에서는 문제 없이 작동 됩니다.
하지만 Visual Studio 2103에서는 클래스는 잘 불러와지는데, 동작을 제대로 안하는게 문제입니다.
TClientSocket의 Open 메소드가 호출해도 아무런 반응이 없습니다.
Open 메소드 호출 후 Lookup 이벤트까지는 발생하였습니다만,
그 이후의 이벤트들은 발생하지 않습니다.
또 재밌는 부분은 TClientSocket의 Host, Port 같은 프로퍼티의 Get, Set은 아무런 문제가 없습니다.
왜 이런걸까요?
혹, VCL을 사용한 DLL 라이브러리를 VC++에서 사용하는데 있어서
유의해야 될 만한 것들이 있는지 선배님들께 조언좀 얻고자 합니다.
참고로 현재 호출 규약은 이벤트 메소드를 정의하는 영역을 제외하고 모두 __stdcall로 통일했습니다.
|