dll 编写报错(50)

  • 主题发起人 主题发起人 liujipeng
  • 开始时间 开始时间
L

liujipeng

Unregistered / Unconfirmed
GUEST, unregistred user!
dll 部分pchar 也试过了function T_Api_Jc(buff:string
var S_order:string):integer;vari_t,i_w:integer;r_s:string;begin i_t:=Pos('<forbug>', buff)
i_w:=Pos('</forbug>', buff)
if (i_t =0) or (i_w =0) then begin t_api_jc:=0
S_order:=''
end else begin t_api_jc:=1
i_t:=Pos('<Od>', buff)
i_w:=Pos('</Od>', buff)
r_s:=copy(buff,i_t+4,i_w-(i_t+4))
s_order:=r_s
end;end;exportsT_Api_Jc;调用部分function T_Api_Jc(buff:string
s_o:string):integer
stdcall
external 'P_com_api.dll'varr_i:integer;r_o:string;p_char:pchar;beginr_i:=T_Api_Jc(edit1.Text,r_o);if r_i=1 thenshowmessage(r_o);调用出问题了高手来看下
 
把string类型改为pchar~~或者在dll及宿主程序中uses sharemem,
 
试试:function T_Api_Jc(buff:widestring
var S_order:widestring):integer;
 
function T_Api_Jc(buff:pchar
var S_order:Pchar):integer
stdcall;//stdcall 加上dll的参数最好不要用 var
 
调用 你 用了 stdcall 。。声明也要 stdcall 啊。。要不就2个都去掉
 
dll最好不用string.用pchar.不然有很多莫名其妙的问题
 
function T_Api_Jc(buff:string
var S_order:string):integer;[red]stdcall[/red]
 
要用string的话,在USES行首加入ShareMem.
 
dll 部分function T_Api_Jc(buff:string
var S_order:string):integer;stdcall;// 这里就要加了!
 
后退
顶部