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.
어제 '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.
>