이건 팁인지 아닌지 모르겠군요.
하지만 모르고 시도하다가 시간 낭비를 하는 것보다 미리 아는게 좋을거 같아서 올립니다.
DLL과는 함수를 통해 정보를 교환하고 기능을 제어할 수 있습니다.
하지만 함수를 나열하자면 귀잖습니다.
그래서 인터페이스용 클래스를 사용하게 되는데,
문제는 VC++과 빌더로 개발한 DLL을 연결할때 입니다.
문제는 빌더와 VC++이 가상함수에 대한 Virtual Table(VTable: 가상함수 테이블)을 처리하는
방법에 약간의 차이가 있어서 호환되지 않는다 입니다.
그래서 COM 처럼 DLL에서 클래스 생성후에 그 포인트를 받아 클래스로 엑세스하는 것이
같은 빌더의 EXE와 DLL 간에는 문제가 없어도
빌더 EXE 와 VC DLL 과는 안된다는 것입니다.
VC DLL간에는 그냥 옛날 처럼 함수 교환 방식을 사용해야 합니다.
이렇게 된 이유는 호환을 위해 공유해야할 DLL 관련 정보나 Name mangle 방식에 대해
MS 쪽에서 공개를 하지 않기 때문으로 알고 있습니다.
|
클래스를 통해, 서로의 클래스가 공유될 수 있음을 확인했습니다.
방법은 강좌란에 있습니다.