델파이에서 COM을 이용하여 작업을 하고 있습니다.
function TForm1.GrabCurrentSurface(): ISpectreViewOverlaySurface;
var
t_Grabber : ISpectreViewGrabSurface;
t_Surface : ISpectreViewOverlaySurface;
begin
//지금 이 함수에 에러가 발생한다...
Memo1.Lines.Add('GrabCurrentSurface');
t_Grabber := RecPlayback; //RecPlayback : TSpectreViewPlayback;
result := t_Surface;
end;
TSpectreViewPlayback는 오브젝트이고, ISpectreViewGrabSurfaces는 그 오브젝트 하부에 있는 인터페이스입니다... 비주얼 베이직에서는 t_Grabber := RecPlayback와 같이 할당을 할 수 있나보더라구요...
근데 비주얼베이직 소스를 델파이로 옮기려 하니 자꾸 다음과 같은 에러가 발생합니다...
Incompatible types: ISpectreViewGrabSurface and TSpectreViewPlayback
지금 비주얼 베이직에서 델파이로 소스를 포팅을 하려는데 위와 같은 에러가 무척 많이 발생하고 있습니다...
이것을 어찌하면 좋을까요???
아래 문장은 맞습니다만...
t_Grabber := RecPlayback; //RecPlayback : TSpectreViewPlayback;
RecPlayback(TSpectreViewPlayback)란 객체에 ISpectreViewGrabSurface인터페이스가 구현이 되어 있어야 합니다.
COM자체는 단지 Prototype일뿐이고 실제 구현은 객체에서 합니다.
TSpectreViewPlayback객체에 ISpectreViewGrabSurface인터페이스가 구현이 되어 있는지 확인해보세요...
^^ 항상 즐코하세요...