首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 调用 c++ 开发的dll 有关问题。难啦兄弟们好长时间都没解决了。

2012-02-17 
delphi 调用 c++ 开发的dll 问题。。。。。难啦兄弟们好长时间都没解决了。。。。。。。。。C++ DLL 申明部分:ryxxextern

delphi 调用 c++ 开发的dll 问题。。。。。难啦兄弟们好长时间都没解决了。。。。。。。。。
C++ DLL 申明部分:

ryxx
extern "C" BOOL PASCAL EXPORT ryxx(LPSTR ybjgbm,LPSTR yybm,
LPSTR sfz,LPSTR xm,LPSTR yllb,LPSTR ryfs,LPSTR sj,
LPSTR zyh,LPSTR zz,LPSTR ks,LPSTR ch,LPSTR sgfssj,
strlpout & out)

delphi 调用部分:

Type
  str_out=record 为一个31个字符串的结构

Type
  str_out=record
  errtext :Pchar;
  out1 :Pchar;
  out2 :Pchar;
  out3 :Pchar;
  out4 :Pchar;
  out5 :Pchar;
  out6 :Pchar;
  out7 :Pchar;
  out8 :Pchar;
  out9 :Pchar;
  out10 :Pchar;
  out11 :Pchar;
  out12 :Pchar;
  out13 :Pchar;
  out14 :Pchar;
  out15 :Pchar;
  out16 :Pchar;
  out17 :Pchar;
  out18 :Pchar;
  out19 :Pchar;
  out20 :Pchar;
  out21 :Pchar;
  out22 :Pchar;
  out23 :Pchar;
  out24 :Pchar;
  out25 :Pchar;
  out26 :Pchar;
  out27 :Pchar;
  out28 :Pchar;
  out29 :Pchar;
  out30 :Pchar;
End;


var
  Form1: TForm1;

implementation

{$R *.dfm}
function ryxx(ybjgbm:pchar;yybm:pchar;sfz:pchar;xm:pchar;yllb:pchar;ryfs:pchar;sj:pchar;zyh:pchar;zz:pchar;ks:pchar;ch:pchar;sgfssj:pchar;strout:str_out):boolean;pascal; external 'd:\CxybClient.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  strout:str_out;
begin
//----------------------------------调用
  if ryxx('sss','sssd','dsf','we','werd','qwer','ccc','ddd','dfw','werx','erg','ggg',strout) then
  begin
  end;
//----------------------------------结束

end;

调用出错提示:

Access violation at address 10001832 in module 'CxybClient.dll'. Read of address 00737373

[解决办法]
申明不对。改为:
function ryxx(ybjgbm:Pchar;yybm:Pchar;sfz:Pchar;xm:Pchar;yllb:Pchar;ryfs:Pchar;sj:Pchar;zyh:Pchar;zz:Pchar;ks:Pchar;ch:Pchar;sgfssj:pchar; var strout:str_out):boolean; stdcall; external 'd:\CxybClient.dll';

热点排行