Datasnap - Как исправить ошибки компоновщика при использовании TFDGUIxWaitCursor? - PullRequest
0 голосов
/ 13 сентября 2018

У меня возникает следующая проблема, когда я хочу скомпилировать свой проект Datasnap ISAPI DLL с использованием C ++ Builder 10.2:

  1. Создание нового приложения Datasnap WebBroker в качестве ISAPI DLL и использование Опция TDSServerModule
  2. Откройте дизайнер WebModule1 и добавьте компонент TFDGUIxWaitCursor
  3. В опциях проекта отмените выбор «Связать с динамическим RTL» и «Связать с пакетами времени выполнения»
  4. Сложение

Затем генерируется куча ошибок компоновщика:

  • [ilink32 Error] Ошибка: Неразрешенный внешний 'GetDpiForMonitor' ссылка на файл C: \ PROGRAM FILES (X86) \ Embarcadero \ Studio \ 19.0 \ LIB \ WIN32 \ DEBUG \ VCL.LIB | Vcl.Forms
  • [ilink32 Error] Ошибка: Неразрешенная внешняя Ссылка на SHCreateItemFromParsingName указана в C: \ PROGRAM FILES (X86) \ Embarcadero \ Studio \ 19.0 \ LIB \ WIN32 \ DEBUG \ VCL.LIB | Vcl.Dialogs
  • [ilink32 Error] Ошибка: Неразрешенный внешний 'BeginBufferedPaint' ссылка на файл C: \ PROGRAM FILES (X86) \ Embarcadero \ Studio \ 19.0 \ LIB \ WIN32 \ DEBUG \ VCL.LIB | Vcl.Controls
  • ....

Подобные ошибки отображаются при нацеливании на 64-битную платформу Windows. Я заметил, что именно TFDGUIxWaitCursor является причиной того, что компиляция проекта перед размещением этого компонента прошла успешно. Он даже прекрасно компилируется, если компонент находится в веб-модуле, но если шаг 3 не выполнен. Как решить эту проблему и получить успешную компиляцию, если применяются шаги 2 и 3?

1 Ответ

0 голосов
/ 14 сентября 2018

Добавление следующих строк в файл WebModule.cpp решает проблему:

#pragma comment(lib, "SHCore")
#pragma comment(lib, "UXTheme")
#pragma comment(lib, "shell32")
#pragma comment(lib, "WINDOWSCODECS")
...