Dephi调用C++的DLL问题?出现地址错误??

                            
===VC++      ================================================================   
  #undef   LPTSTR  
  typedef   BYTE   RSI_ID[5];  
   
  RSI_DLL   RSI_DATA_ERROR   RSI_API   rsiTextToID(LPCTSTR   text,   RSI_ID   id);  
  RSI_DLL   RSI_DATA_ERROR   RSI_API   rsiIDToText(RSI_ID   id,   LPTSTR   text);  
  ===Delphi================================================================  
  Type   RSI_ID=record  
          b0   :   Byte;  
          b1   :   Byte;  
          b2   :   Byte;  
          b3   :   Byte;  
          b4   :   Byte;  
  end;  
  ??是不是这样定义Function   rsiIDToText(ID:RSI_ID;text:pchar)   :RSI_DATA_ERROR;   stdcall;   external   'rsidll32.dll';  
  ??是不是这样定义Function   rsiTextToID(text:pchar;ID:RSI_ID)   :RSI_DATA_ERROR;   stdcall;   external   'rsidll32.dll';  
   
  ===================================================================  
  rsiIDToText  
  原形: RSI_DATA_ERROR   rsiIDToText(RSI_ID   id,   LPTSTR   text);  
  参数: RSI_ID   id:   一个   BCD   格式的使用者   ID   的数据结构LPTSTR    
                      text:一个将会接收使用者   ID   正文字符串的指针  
  功能: 将一个   BCD   格式的使用者   ID   转换为一个正文格式的使用者   ID  
  返回: RSI_DATA_OK:成功由   rsiGetDataError   返回的错误值:失败  
   
  text参数是指针。要怎么定义才行?  
  ===================================================================  
  这样总是会出现地址错误??  
  Access   violation   at   address   10039E9   in   module   'rsidll21.dll'   Read   of   address   99817489  
  ==============================  
  var  
  id:RSI_ID;  
  str_id:pchar;//??是不是用pchar  
  begin  
  Result:=   rsiIDToText(ur.ID,str_id);  
  ??rsiIDToText怎样调用呢?  
  end;  
  在delphi里要怎样定义和怎样调用呢?  
 

查看回复