動作環境
RAD Studio 10.2 Tokyo Update 3
Windows 10 v1903
Error
上記の実装において「ReadStream()使用」の実装を10.2 Tokyoで試そうとした。
int len=1000;
下記のエラーが出た。
[ilink32 エラー] Error: 未解決の外部シンボル 'int __fastcall System::Classes::TStream::ReadData(char[1000]&, int)' が XXX.OBJ から参照されています
対処
NativeInt __fastcall ReadData(char &Buffer, NativeInt Count)/* overload */;
第2引数はint型ではなくNativeInt 型。
len
の値を引数として渡す時にNativeInt型にキャストするとエラーは出なくなった。
APIの変更 (intからNativeIntへ) > XE4から10.2 Tokyoへの移植時の落とし穴
XE4:
http://docwiki.embarcadero.com/Libraries/XE4/en/System.Classes.TStream.ReadData
int __fastcall ReadData(System::WideChar &Buffer, int Count)/* overload */;
Tokyo:
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Classes.TStream.ReadData
NativeInt __fastcall ReadData(System::WideChar &Buffer, NativeInt Count)/* overload */;