一个动态连接库调用问题,如何在程序里调用使它返回字符串,如下动态连接库,如何设一个变量,使它影射data_buffer,这个变量是不是必须用pchar类型,我不知道该怎么写怎么用,谢谢各位给予回复!
Function srd_4442 (icdev:integer;offset:integer;le:integer; var  data_buffer:pchar):integer;far; stdcall;external 'ftIC_32.dll';
我的程序代码如下:
var 
data:pchar;st:=srd_4442(icdev,offset, le, Data);  然后取data的值时出错(project project2.exe raised exception class eaccessviolaton with message'access violaton at address 004046ab in module'project2.exe'.read of address 5affb600'.process stoped.use setp or run to continue我发现出错时是调用data变量时或调用的哪个函数走完时才提示,急需解决,在线等待

解决方案 »

  1.   

    可能是你调用前没有分配内存请大家去 http://www.new7wonders.com/c/voting.php 投长城一票
      

  2.   

    如果不超过256字节 data_buffer: ShortString;
    否则 data_buffer: TMemoryStream;
      

  3.   

    转为PChar!
    或引用ShareMem单元,但Borlandmm.dll文件要一起分发!
      

  4.   

    可能是类型不匹配的问题,如dll是c++编写的字符窜为指针,先给变量分配内存在使用。 我也遇到个类似的问题