Q&A

  • dll에서 function호출시 변수타입 지정문제...
다름이 아니오라... dll에 선언된 함수를 델파이에서 선언해야 되는데

void*형으로 잡혀져 있어요... 델파이에서는 Structure루 넘겨줘야 하거덩요



그래서 구조체는 선언을 해줬는데...

이거하구 함수 선언부 하구 안맞는다구 에러가 나네...

쩌비...



C++에 선언된 함수는

query (void* query, size_t query_size, void* answer, size_t answer_size, , txstat_t* txstat)

이루쿠룸 생겼구.....



나는 이고를

unit Usedll;



interface



type

TMyStr = Record

end;



function query(query : TMyStr ; query_size : integer; answer : TMyStr ; answer_size : integer; txstat : TMyStr) : integer; stdcall ;



implementation



function query(query : TMyStr ; query_size : integer; answer : TMyStr ; answer_size : integer; txstat : TMyStr) : integer; stdcall ;external 'omkapidll.dll';



end.

요로케 선언해 줬어요...

이걸 콜할때는

procedure TForm2.FormCreate(Sender: TObject);

type

Tr_Code_t = record

class_s : array[1..2] of Char;

type_c : char ;

number_n : short;

end;



Proc_user_t = record

baranch_s : array[1..3] of char;

ip_addr_s : String[15] ;//array[1..15] of char;

user_s : String[8]//array[1..8] of char;

end;



Code_item_t = record

codeId_s : array[1..20] of char ;

codevalue : array[1..80] of char ;

end;



Query_t = record

Tr_Code: Tr_Code_t;

Proc_user : Proc_user_t ;

segment_number_n : short ;

codeClassId_s : String[20]//array[1..20] of char ;

end;



Answer_t = record

Tr_Code: Tr_Code_t;

codeClassId_s : array[1..20] of char;

segment_number_n : short ;

items_n : short;

item : array[1..50] of code_item_t ;

end;



txstat = record

tt_id : Integer ;

tt_seq : Integer ;

ss : array[1..100] of char ;

end;



var

rtn : integer ;

snd : Query_t;

ans : Answer_t ;



begin

//소득자코드 comboBox 채우기

snd.Tr_Code.class_s := 'CD';

snd.Tr_Code.type_c := 'Q' ;

snd.Tr_Code.number_n := 1001 ;



snd.Proc_user.baranch_s := '000' ;

snd.Proc_user.ip_addr_s := '192.168.0.19';

snd.Proc_user.user_s := 'jhur' ;



snd.segment_number_n := 1;

snd.codeClassId_s := 'INCOME' ;



rtn := query(^snd, sizeof(snd), ^ans, sizeof(ans), ^txstat );

근데... 에러가 나...TMyStr하구 Char 하구 Incompatible Type이래요...

함수선언에서... 변수타입을 뭘로 줘야 할까요.....

0  COMMENTS