定义:
function FormatXMLParam(lpszMsgID, lpszResValueType:String; var sXMLFormat:String; lpszErrorMsg:String):Boolean;调用:
var
sXML :String;
FormatXMLParam('ID_APP_PDM_ISSTART', 'out', sXML, '');出错信息:
types of actual and formal var parameters must be identical;为什么我参数类型都一致还提示我错误,而且当我把var sXMLFormat:String这个参数改成Integer类型后就没有错误了,难道String这种类型不能传地址吗,如果是这样要怎么实现String类型的引用传值?
function FormatXMLParam(lpszMsgID, lpszResValueType:String; var sXMLFormat:String; lpszErrorMsg:String):Boolean;调用:
var
sXML :String;
FormatXMLParam('ID_APP_PDM_ISSTART', 'out', sXML, '');出错信息:
types of actual and formal var parameters must be identical;为什么我参数类型都一致还提示我错误,而且当我把var sXMLFormat:String这个参数改成Integer类型后就没有错误了,难道String这种类型不能传地址吗,如果是这样要怎么实现String类型的引用传值?
检查sXML 的定义有没有错误,或者在不同地方定义了这个变量。
看一下sXML是怎么定义的,不能定义为常量
刚试了把定义和调用放在同一个.pas内发现可以编译通过,但在另外一个文件里调用就是出现类型不一致的提示,
参数类型已检查多遍,没有问题,也没有重复定义相同名称的变量,请问有没有人遇到过这种情况?
但没有初始化,直接用了,我试了先sXML := '';再调用函数还是编译不通过
我这里试了,没有问题的
改变量试试
var
sXML_Test :String;
FormatXMLParam('ID_APP_PDM_ISSTART', 'out', sXML_Test, '');
定义和调用是放在两个.pas文件里的,当然调用的地方用uses把定义和实现的文件包含进来了
刚试了把定义和调用放在同一个.pas内发现可以编译通过,但在另外一个文件里调用就是出现类型不一致的提示,
参数类型已检查多遍,没有问题,也没有重复定义相同名称的变量
var
sXML_Test :AnsiString;
FormatXMLParam('ID_APP_PDM_ISSTART', 'out', sXML_Test, '');
当然默认是AnsiString