Q&A

  • OCX 등록에 대해서...--;
안녕하심까? 꾸벅.



Delphi를 Uninstall 시킨후에 다시 설치하고

Format하기전에 등록했던 Faceplate.ocx라는 놈을

등록했는데 이 ocx를 사용하는 프로그램을 Compile하면



Undefined identifier 'TControlData2' 등등 이런 에러가 나옵니다.

물론 그 밑의 소스들도 덩달아서 에러가 나오구요.(아래 소스 참고하세요)



근데 더 이상한건 이 ocx를 사용한 프로그램이 3개 정도(ocx 동적/정적 생성)

되는데 어떤놈은 되고 어떤놈은 에러가 납니다.



ocx는 Component/Import ActiveX Control... 에서 Import시켰습니다.

ocx 등록에 문제가 있는지요...

문제가 있다면 이 기회에 ocx 등록/과 사용시 문제점에 대해

자세히 알고 싶습니다.

부탁함다.

그럼. 즐거운 코딩 하세요.~~~^^

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

procedure TFaceplate.InitControlData;

const

CEventDispIDs: array [0..11] of DWORD = (

$00000001, $00000002, $00000003, $00000004, $00000005, $00000006,

$0000000A, $0000000F, $00000007, $00000008, $00000009, $0000000B);

CTFontIDs: array [0..0] of DWORD = (

$FFFFFE00);

CControlData: TControlData2 = (

ClassID: '{4396B44F-74BC-11D3-AC19-0060B07D9D26}';

EventIID: '{4396B44D-74BC-11D3-AC19-0060B07D9D26}';

EventCount: 12;

EventDispIDs: @CEventDispIDs;

LicenseKey: nil;

Flags: $0000001D;

Version: 401;

FontCount: 1;

FontIDs: @CTFontIDs);

begin

ControlData := @CControlData;

TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnActivate) - Cardinal(Self);

end;

1  COMMENTS
  • Profile
    최용일 2000.04.22 06:41
    안녕하세요. 최용일입니다.



    import시킨 ActiveX 유닛을 uses절에 추가시켜 주세요.



    undefined identifier는 선언되지 않은 객체나 변수등을 참조할때 발생합니다.



    TControlData2란게 어디에 있는지 찾아서 uses절에 그 유닛을 추가해 주세요.



    ^^ 항상 즐코하세요.



    야근 wrote:

    > 안녕하심까? 꾸벅.

    >

    > Delphi를 Uninstall 시킨후에 다시 설치하고

    > Format하기전에 등록했던 Faceplate.ocx라는 놈을

    > 등록했는데 이 ocx를 사용하는 프로그램을 Compile하면

    >

    > Undefined identifier 'TControlData2' 등등 이런 에러가 나옵니다.

    > 물론 그 밑의 소스들도 덩달아서 에러가 나오구요.(아래 소스 참고하세요)

    >

    > 근데 더 이상한건 이 ocx를 사용한 프로그램이 3개 정도(ocx 동적/정적 생성)

    > 되는데 어떤놈은 되고 어떤놈은 에러가 납니다.

    >

    > ocx는 Component/Import ActiveX Control... 에서 Import시켰습니다.

    > ocx 등록에 문제가 있는지요...

    > 문제가 있다면 이 기회에 ocx 등록/과 사용시 문제점에 대해

    > 자세히 알고 싶습니다.

    > 부탁함다.

    > 그럼. 즐거운 코딩 하세요.~~~^^

    > --------------------------------------------------

    > procedure TFaceplate.InitControlData;

    > const

    > CEventDispIDs: array [0..11] of DWORD = (

    > $00000001, $00000002, $00000003, $00000004, $00000005, $00000006,

    > $0000000A, $0000000F, $00000007, $00000008, $00000009, $0000000B);

    > CTFontIDs: array [0..0] of DWORD = (

    > $FFFFFE00);

    > CControlData: TControlData2 = (

    > ClassID: '{4396B44F-74BC-11D3-AC19-0060B07D9D26}';

    > EventIID: '{4396B44D-74BC-11D3-AC19-0060B07D9D26}';

    > EventCount: 12;

    > EventDispIDs: @CEventDispIDs;

    > LicenseKey: nil;

    > Flags: $0000001D;

    > Version: 401;

    > FontCount: 1;

    > FontIDs: @CTFontIDs);

    > begin

    > ControlData := @CControlData;

    > TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnActivate) - Cardinal(Self);

    > end;