Q&A

  • c, c++작성된 Dll의 파라메터 사용 문의
다름이 아니라

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;

2  COMMENTS
  • Profile
    KDDG_BaSTaD 2004.11.04 01:39
    ==> KDDG_BaSTaD 입니다.

    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. 거럼 성겅하시길...
  • Profile