本人在使用Delphi3.0进行Protel的二次开发,经常遇到一些莫名其妙的问题,如下:
1、相同的代码在不同地方运行结果不一致,甚至在同一个unit里面的不同地方,有的地方可以正常运行,有的地方一运行,Protel就自动退出。如下代码:    sXML1 := '<?xml version="1.0" encoding="GB2312"?>'
           + '<Application><InterfaceName>ID_APP_PDM_MYTASK</InterfaceName><InterfaceFunName></InterfaceFunName>'
           + '<ServerName></ServerName><ActualParameters><ActualParameter><FormalParameterID></FormalParameterID>';
    sXML2 := '<IOType></IOType><DataType></DataType><IsArray>false</IsArray><Value></Value></ActualParameter>'
           + '<ActualParameter><FormalParameterID>ErrInfo</FormalParameterID><IOType>out</IOType>';
    sXML3 := '<DataType>string</DataType><IsArray>false</IsArray><Value></Value></ActualParameter>'
           + '</ActualParameters><ReturnParameter><FormalParameterID>Result</FormalParameterID>'
           + '<DataType>int</DataType><Value></Value></ReturnParameter></Application>';    sXML := sXML1 + sXML2 + sXML3;

      bRet := kmdp_ConnectToServer(18);
      if bRet then
          ShowMessage('调用成功')
      else
      Begin
          ShowMessage('连接PDM失败');
          Exit;
      End;
我其中一个函数只有上面这段代码,前面红色部分代码只是几个String变量,之前用来做测试用的,和后面几行代码一点关系都没有,但当我把前面部分代码注释掉或者删掉,在Protel中一运行Protel就出问题。保留前面这段无用的代码反而可以正常运行。由于本人刚接触的Delphi和Protel二次开发,被Delphi这种莫名其妙的问题折磨得不行了,有没有大虾来指点下。
注:红色代码部分没有任何地方使用到