Q&A

  • Incompatible types... 두 unit간의 변수형 중복... 어떻게???
델파이 초보 박영목 입니다.

GDIPAPI를 사용하려고 하는데... 처음 부터 막히군요....

이것도 별것 아닌 것 같은

두 UNIT에 같은 이름의 레코드가 있다.

그러니까? 그냥 똑같이 TPoint로 선언을 하면 코드 중간에서...
이것이 Windows의 TPoint인지 GDIPAPI의 TPoint인지 Compile가 어느 것을
지정할지 헷갈려서 Error를 일어키는데...( Incompatible Type: 'GDIAPI.TPoint and Windows.TPoint )

그래서 선언 부분에서
p: TPoint; 할 것을 p: Windows.TPoint;  로 하니까? Error는 지나가는데..
이런 것이 무지 많다는 것... 함수마다 다 해야 할 것 같은... 완전 노가다... 간단하게 쉬운 방법 있으면 가르쳐 주십시오.... 그렇다고 GDIPAPI.pas에 있는 TPoint를 다른 이름으로 바꾸지 않고 할 수 있는 방법이면 아주 좋겠습니다.


unit Windows;

type
  PPoint = ^TPoint;
  TPoint = record
    x: Longint;
    y: Longint;
  end;

--------------------------------------------------------------------------

unit GDIPAPI;

type
  PPoint = ^TPoint;
  TPoint = packed record
    X : Integer;
    Y : Integer;
  end;


    :::::: 부산 센텀시티 벤처빌딩 ISCommunications 프로그래머 박영목 ::::::
2  COMMENTS
  • Profile
    프리맨 2003.07.30 21:50
    그 문제때문이라고 생각되는데요..
    progdigy에서 배포되는 Delphi6 용 GDI+ 헤더에는
    TPoint 가 TGPPoint로 바뀌었습니다.
    TRect도 마찬가지로 TGPRect...

    그런데 Delphi6의 TPoint, TRect도 사실 Packed 입니다.
    그러므로 GDIPAPI.pas 의 TPoint, TRect를 삭제해 버리면 쉽게
    해결되리라고 생각됩니다.


  • Profile
    박영목 2003.07.30 22:22
    ..