Я пытаюсь переместить приложение, которое использует TAmazonConnectionInfo
C++Builder для доступа к объектам в Amazon Simple Storage Service (S3). У меня была версия, работающая в C++Builder 10.1 Berlin, но когда я пытаюсь переместить ее в 10.3 Rio, ссылка завершается с ошибкой Unresolved external:
[Ошибка ilink32] Ошибка: неразрешенный внешний '__fastcall Data::Cloud::Amazonapi::TAmazonStorageService::GetObjectW(System::UnicodeString, System::UnicodeString, System::Classes::TStream *, Data::Cloud::Cloudapi ::TCloudResponseInfo *, Data::Cloud::Amazonapi::TAmazonRegion)'
Простейшее воспроизведение этой ошибки:
- Создайте новое приложение C++ Builder VCL
- Поместите объект TAmazonConnectionInfo и кнопку на форму и дважды щелкните кнопку
Замените обработчик кликов на:
void __fastcall TForm1::Button1Click(TObject *Sender) { TCloudResponseInfo * ResponseInfo = NULL; TAmazonStorageService *StorageService = NULL; TStream* stream; String ObjectName; StorageService->GetObject(ObjectName, ObjectName, stream, ResponseInfo); }
(Я понимаю, что эта процедура не будет работать, потому что ничего не инициализировано, но это приведет к ошибке ссылки с наименьшим количеством кода).
Я искал пример кода, показывающий, как это должно работать, но я не могу найти образцы кода для RAD Studio 10.3 Rio в своей системе, и не похоже, чтобы образцы были обновлены для Rio на Демонстрационный код RAD Studio на SourceForge.
Я нашел примеры на Github по адресу https://github.com/Embarcadero/RADStudio10.3Demos/tree/master/CPP, но образцы Cloud, похоже, не были перенесены для C++ Builder, только для Object Pascal.
Я пробовал добавить CloudService.lib
в проект, но это не помогло. Также не добавлялось:
#pragma link "Data.Cloud.CloudAPI"
#pragma link "Data.Cloud.AmazonAPI"
Итак, есть ли работающий образец C++Builder, который компилируется и линкуется под 10.3 Rio? Как я могу заставить этот проект скомпилировать и связать?