本人在使用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这种莫名其妙的问题折磨得不行了,有没有大虾来指点下。
注:红色代码部分没有任何地方使用到
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这种莫名其妙的问题折磨得不行了,有没有大虾来指点下。
注:红色代码部分没有任何地方使用到
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货