您当前的位置:delphi教程 > Delphi系统相关 > 请教高手 delphi调用C++ dll问题II

请教高手 delphi调用C++ dll问题II

delphi我很弱,希望高手耐心指点,谢谢各位先!!  
   
  函数原型:  
  //__int16   __stdcall     Z8_GetTime(HANDLE   icdev,unsigned   char   addr,unsigned   char   *time);  
  功能:返回time,格式为16进制     如06-9-6   20:23:12:0x06   0x09   0x06   0x20   0x23   0x12      
   
  DLEPHI   定义:  
      Function   Z8_GetTime(icdev:integer;addr:integer;time:pchar):integer;   stdcall;  
          far;external   'Z8rf32.dll'   name   'Z8_GetTime';  
   
  问题:现在返回的值为乱码   ,是delphi里定义函数不应该用TIME:PCHAR和unsigned   char   *time对应,还是pchar的值需要通过其他方法处理才能得到正确的时间。  
   
  功能代码片断:  
  procedure   TForm1.Button7Click(Sender:   TObject);  
  var  
  i:integer;  
  p1:pchar;  
  mtime:string;  
  begin  
      try  
          GetMem(p1,100);  
          i:=Z8_GetTime(m_iHandle,m_iAddr,p1)   ;  
  //m_iHandle,m_iAddr与出现问题无关,调试时发现P1的值为乱码  
          mtime:=string(p1);//调试mtime值为:#6#9#6#等  
          if   i<>0   then  
              begin  
                    ListBox1.Items.Add('error!');  
                    exit;  
              end;  
          ListBox1.Items.Add('the   time   is:'+mtime);  
          FreeMem(p1);  
  except  
          on   e:Exception   do   showmessage(E.Message);  
  end;  
  end;  
 


查看回复
  最新教程
关于我们 | 网站地图 | 广告刊登 | 友情链接
Copyright ©2008 - 2010  Delphi2007.net  ,All Rights Reserved  粤ICP备09038647号
业务联系:allceoad#gmail.com QQ:20008835 最佳分辨率 1024×768