SMS=^SM_PARAM;
 SM_PARAM=record
    TP_PID:char;               
    TP_DCS:char;  
 end;function ReceiveMessage(sm:SMS;index:Integer):Integer ;stdcall;external 'sms.dll'name 'RMessage';//////////////////////////////
procedure TForm1.Button3Click(Sender: TObject);
  var sms1:SMS;
      i:integer;
begin
  i:=ReceiveMessage(@sms1,5);
  Memo1.Lines.Add(IntToStr(i));
  //程序走到此处报错。
  Memo1.Lines.Add(PChar(sms1.TP_PID));
  Memo1.Lines.Add(PChar(sms1^.TP_DCS));
  //急的很,请各位帮忙。
end;

解决方案 »

  1.   

    好象是短消息的东东嘛?我写过这样的软件。……
    Memo1.Lines.Add(IntToStr(i));
      //程序走到此处报错。           是上面还是下面????
    Memo1.Lines.Add(PChar(sms1.TP_PID));
    ……
      

  2.   

    是的,短消息。
    Memo1.Lines.Add(PChar(sms1.TP_PID));处出错。
      

  3.   

    begin
      new(sms1);
      i:=ReceiveMessage(@sms1,5);
      ...
      dispose(sms1);
    end;
      

  4.   

    我调用厂家的dll,收发短信。
    不知道此处该怎么用。请赐教!多谢。
      

  5.   

    i:=ReceiveMessage(sms1,5); //這句也要改, 應該是這樣就可, 不用@Memo1.Lines.Add(sms1^.TP_PID);
      

  6.   

    aiirii(ari-爱的眼睛) 谢谢!
    我马上试试。
      

  7.   

    ReceiveMessage老返回-1。我还没搞好
      

  8.   

    搞好了。多谢 aiirii(ari-爱的眼睛),非常感谢