var<br> BMsg, BID: PChar;<br> sMsg, sID: string;<br>begin<br> GetMem(BMsg, 4096);<br> GetMem(BID, 32);<br><br> { 加上这两句试试 }<br> FillChar(BMsg^, 4096, #0);<br> FillChar(BID^, 32, #0);<br><br> xcom_recv(52, BMsg, 4096, BID, ....);<br> sID := StrPas(BID); // 此处编译异常!!!!<br> sID := upperCase(trim(sID));<br> sMsg := StrPas(BMsg);<br> sMsg := upperCase(trim(sMsg));<br> .....<br> FreeMem(BMsg);<br> FreeMem(BID);<br>end;<br><br>如果还是不行,我也认为你的VB函数在Delphi中的声明有问题了(我不懂VB),你最好到CSDN<br>上的BV论坛上去找一个既懂VB又懂C++的人问问,让他翻译成C++代码,就好办了(当然,如果<br>既懂VB又懂Delphi,就再好不过了)。