我可以成功編譯C++ Builder 6中的代碼片段。C++ Builder 6和C++ Builder Seatle For IntToStr方法有什麼區別?
但是我無法在Rad studio Seatle C++ Builder中編譯。
unsigned long x = 50;
String s = IntToStr(x);
[bcc32錯誤] Unit1.cpp(55):E2015歧義_fastcall 系統之間」 :: sysutils的:: IntToStr(INT)在C:\程序文件 (86)\ Embarcadero的\工作室\ 17.0 \ include \ windows \ rtl \ System.SysUtils.hpp:3182' and'_fastcall System :: Sysutils :: IntToStr(__ int64)at c:\ program files (x86)\ embarcadero \ studio \ 17.0 \ include \ windows \ rtl \ System.SysUtils.hpp:3183'
我也檢查過IntToStr的定義。
C++生成器6
extern PACKAGE AnsiString __fastcall IntToStr(int Value)/* overload */;
extern PACKAGE AnsiString __fastcall IntToStr(__int64 Value)/* overload */;
C++生成器Seatle
extern DELPHI_PACKAGE System::UnicodeString __fastcall IntToStr(int Value)/* overload */;
extern DELPHI_PACKAGE System::UnicodeString __fastcall IntToStr(__int64 Value)/* overload */;
extern DELPHI_PACKAGE System::UnicodeString __fastcall UIntToStr(unsigned Value)/* overload */;
extern DELPHI_PACKAGE System::UnicodeString __fastcall UIntToStr(unsigned __int64 Value)/* overload */;
有什麼C++生成器6和C++ Builder Seatle之間的差異?
我知道IntToStr方法是重載和不同的參數types.But 我不知道C++ builder 6和C++ builder seatle之間的區別。 –
構建器6隱式地將無符號值轉換爲其中一種簽名類型,新構建器(自2010年以來)默認情況下不會這樣做,您需要將其明確轉換爲已簽名類型或使用未簽名替代方法。 –
如果這個解決方案正在工作,請不要忘記它爲up-vote和標記爲答案 –