Q&A

  • DLL정적호출...
DLL을 정적으로 호출해서 DLL내에 있는 함수를 이용하려고 하는데 잘 안되네요.

폼 없는 유닛(unit2)에서 DLL을 호출해서 유닛1에서 사용하려고 합니다.

소스를 첨부합니다.

한수 부탁합니다.



implementation



uses unit2;



{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

begin

FPV_VideoLive(true,ALIGN_ANY); //DLL에서 제공하는 함수

FPV_GetVideoRect(0,0,0,100,100);



end;





unit Unit2;



interface



implementation



Const ALIGN_EVEN= 0; //DLL이 제공하는 함수의 인자값들

Const ALIGN_ODD= 1;

Const ALIGN_ANY= 2;

Const ALIGN_NONE= 3;



const ACQRECT=0;

const SOURCERECT=1;

const DESTRECT=2;



Function VideoLive

(chk:boolean;flag:integer):Integer;stdcall;external 'Fpv32.dll'

Function FPV_GetVideoRect(nRectType, pnX, pnY, pnWidth,

pnHeight:integer):Integer;stdcall;external 'Fpv32.dll'



end.



1  COMMENTS
  • Profile
    유수 1999.08.14 04:58
    안녕하세요.

    어제 'DLL동적호출' 질문해 주신 분이시져.. 방가..^^;

    언듯 아래의 코드를 보니 구현(implementation)부에 상수와

    함수 선언이 되어 있습니다.

    한 유닛에서 다른 유닛에 선언된 함수나 상수 클래스 변수 등을

    참조하기 위해선 그것들이 구현부윗쪽(인터페이스부와 구현부사이)에

    선언되어 있어야 합니다.

    그러니, 아래 Unit2코드의 구현부 밑에 있는 상수와 함수 선언문들을

    구현부 위로 올려 주시면 됩니다.

    더붙여 사용하시고자 하는 DLL이 패스된 경로에 있는지도 확인해

    주시기 바랍니다.

    겜방이라 상세한 확인을 못하고 글을 올려 죄송해요.



    termy 께서 말씀하시기를...

    > DLL을 정적으로 호출해서 DLL내에 있는 함수를 이용하려고 하는데 잘 안되네요.

    > 폼 없는 유닛(unit2)에서 DLL을 호출해서 유닛1에서 사용하려고 합니다.

    > 소스를 첨부합니다.

    > 한수 부탁합니다.

    >

    > implementation

    >

    > uses unit2;

    >

    > {$R *.DFM}

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > FPV_VideoLive(true,ALIGN_ANY); //DLL에서 제공하는 함수

    > FPV_GetVideoRect(0,0,0,100,100);

    >

    > end;

    >

    >

    > unit Unit2;

    >

    > interface

    >

    > implementation

    >

    > Const ALIGN_EVEN= 0; //DLL이 제공하는 함수의 인자값들

    > Const ALIGN_ODD= 1;

    > Const ALIGN_ANY= 2;

    > Const ALIGN_NONE= 3;

    >

    > const ACQRECT=0;

    > const SOURCERECT=1;

    > const DESTRECT=2;

    >

    > Function VideoLive

    > (chk:boolean;flag:integer):Integer;stdcall;external 'Fpv32.dll'

    > Function FPV_GetVideoRect(nRectType, pnX, pnY, pnWidth,

    > pnHeight:integer):Integer;stdcall;external 'Fpv32.dll'

    >

    > end.

    >