다름이 아니라
C[C++]로 제작된 DLL에 연결 파라메터가 이중 포인터를 사용는데요
델파이에서 이 Dll를 사용하려고 하는데 잘안되네요^^;
답글 부탁드려요^^;
== Dll원형 ==
int SF_Indenify(unsiged char ** templetes, int count);
== 델파이에서 시도 ==
var
bByte : array [0..383] of byte;
ncount : integer;
begin
SF_Indenify(bByte[0], nCount); << 에러 발생
SF_Indenify(@bByte[0], nCount); << 에러 발생
end;
참고로 Dll의 이중 포인터가 아닌경우는 잘됩니다
== Dll원형이 위의 dll 함수와 조금 다름 ==
int SF_verify(unsiged char * templetes, int count); << 2중 포인터 아님
== 델파이에서 시도 ==
var
bByte : array [0..383] of byte;
ncount : integer;
begin
SF_Indenify(bByte[0], nCount); << 잘됨
end;
Pointer로 해보세요..
원형이 다음과 같으면
int SF_Indenify(unsiged char ** templetes, int count);
이렇게 바꿔보세요..
function SF_Indenify(templates: Pointer; count: Integer); cdecl; stdcall; external `DLLFILENAME`;
그리고 호출할때는
var
aa: array[0..MAX_PATH] of PChar;
begin
... // 필요한거면 GetMem(aa[0], 크기)로 할당해주세요..
SF_Indenify(@aa[0], 갯수);
...
end;
ps. 거럼 성겅하시길...