DELPHI原型定义
procedure TForm1.RMReport1UserFunction(aFunctionName: String; aParams: array of Variant; var aValue: Variant; var aFound: Boolean);
c++builder的定义
void __fastcall RMReport1UserFunction(AnsiString aFunctionName, _ARRAYOF Variant* aParams, const int aParams_Size, Variant &aValue, bool &aFound);
c++builder5编译没有问题
c++builder6编译报错了。
[C++ Error] Unit1.h(19): E2303 Type name expected
[C++ Error] Unit1.cpp(22): E2451 Undefined symbol 'AnsiString'
修改为以下赋值函数就可以成功了,c++builder6.0下OK。
void __fastcall myRMReport1UserFunction(AnsiString aFunctionName, const Variant* aParams, const int aParams_Size, Variant &aValue, bool &aFound);
void __fastcall TForm1::FormCreate(TObject *Sender)
{
RMReport1->OnUserFunction = this->myRMReport1UserFunction;
}
XE4
void __fastcall RMReport1UserFunction(UnicodeString aFunctionName, _ARRAYOF Variant* aParams,
const int aParams_Size, Variant &aValue, bool &aFound);
编译直接可以成功,说明_ARRAYOF Variant* aParams这种定义是没有错,只是c++builder6不能识别!