Q&A

  • VC++로 만들어진 dll함수를 delphi 에서 사용시 에러가납니다.
델파이에서 dll 함수를 실행하려는데 에러가 납니다.
VC++ 로 만들어진 dll 안의 함수 type 는 아래와 같습니다.
int KPC_SendRequest(char* SendData, char* RecvData, HWND hWndReceiveMessage)

이 함수를 delphi 에서 아래와같이 사용하였습니다.

function KPC_SendRequest(aa, bb: PChar; cc: HWnd): integer;cdecl   ; external 'kmpspos31.dll';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var SendData: pChar;
    ResData: pChar;
    i:HWnd;
    Str1:string;
begin
str1 := edit1.text;
senddata := Pchar(str1);
if KPC_SendRequest(SendData, ResData ,i)  = 0  then
                ShowMessage('처리가 정상적으로 이루어 졌습니다.');
end;

그런데 KPC_SendRequest(SendData, ResData ,i)  에서
"access violation error" 가 나옵니다.

무엇이 잘못된것인지 알려주시면 정말 감사하겠습니다.
2  COMMENTS
  • Profile
    이중철 2005.07.21 23:43
    내용상
    SendData는 변수를 보내는 부문이고..
    RecvData는 받는 부문 같은데

    var
      ResData: pChar;
    begin
      GetMem(ResData, 예상되는 받을수 있는 최대 용량);
    ..................
       아래소스 그대로 하시고..
    ..................
      FreeMem(ResData);


    그럼 이만...

  • Profile
    장영아 2005.07.22 01:14
    ResData: array [0..1024] of char;
    이렇게 정의하니까 되네요..
    감사합니다.