DLL file 에서 import 된 component 를 test 하는 중입니다.
Delphi 5 의 Project -> Import Type library 를 사용해서 VCL 을 생성한 다음
component 들을 form 에 drop 한후 세부 코딩을 하던 중 다음과 같은 문제에 막혀있습니다.
Delphi component pallete 에 만들어진 component 이름은 TDMQueue 라는 이름으로 만들어져있는데
XXX_TLB.pas 에 가보면 모든 function 및 procedure 들은 IDMQueue 라는 type 으로 사용합니다.
Queue: TDMQueue; 와 같이 선언된 object 를
procedure Init( newQueue: IDMQueue); 에 넘길수가없어서 - TDMQueue 와 IDMQueue 의 type 차이 때문에
Init(Queue.DefaultInterface); 와 같이 적어주었습니다. 여기까지는 잘 동작하네요.
그런데 반대로
function getDefaltDMQueue: IDMQueue; 라는 함수를 써서
Queue := getDefaultDMQueue 와 같이 만들수가 없어요. type 이 서로 맞지 않으므로..
Queue.defaultInterface 를 쓰려고해도 읽기전용 property 라서 compile 도 안되고.
TXXX 라는 이름으로 import 된 COM 관련 component 는 왜 method 들의 parameter type 이 IXXX 로 생성되는지요. 이런 문제가 Delphi 6 혹은 7 으로 옮겨가면 해결될 수있나요?
아시는 분 답변 부탁합니다.
임포트한 클래스 선언부 보시면 뒤에 COM인터페이스가 같이 들어가 있을겁니다. 형변환해서 사용하세요...
var
Queue: TDMQueue;
begin
......
Init(Queue as IDMQueue);
......
end;
^^ 항상 즐코하세요...