CPP로된 DLL이 있는데 그것을 이용한 함수 입니다.
아래와 같은 구조체에 데이터를 넣어서 호출하게 됩니다.
아래 멤버는 축약 시켜 놓은 거구요. Error메시지와 같은 리턴 받는 것도 있습니다.
typedef struct tExtraP
{
long lStructSize;
BOOL bCallback;
HWND hCallbackWindow;
LPSTR szLogFile;
LPSTR szErrorMessage;
} ExtraP,*PExtraP,far *LPExtraP;
extern "C" BOOL 'ExtraPFunc'(LPExtraP);
를 아래로 했구요.
type
pExtraP = ^tExtraP;
{$EXTERNALSYM tExtraP}
tExtraP = packed record
lStructSize: LongInt;
bCallback: Bool;
hCallbackWindow: HWND;
szLogFile: PChar;
szErrorMessage: PChar;
end {tpExtraP};
이렇게 선언했구요.
function TestO2(aExtraP : pExtraP): Bool; cdecl; external 'Test.dll' name 'ExtraPFunc';
이것에 사용부는.
var
aExtraP: pExtraP;
begin
aExtraP:= AllocMem(sizeOf(tExtraP));
aExtraP.szLogFile := 'c:\temp.log'; // <- 이런식으로 데이터를 넣구.
TestO2(aExtraP.szLogFile); //<- 호출을 하게 되면 에러가 납니다. ㅠ.ㅠ.
,far *LPExtraP; 이것을 파라미터로 선언해서 사용하는 방법을 잘모르겠습니다.
올바른 선언 법은 무엇인지요?