Datasnap - 使用 TFDGUIxWaitCursor 时如何修复链接器错误?
Datasnap - How to fix linker errors when using TFDGUIxWaitCursor?
当我想使用 C++ Builder 10.2 编译我的 Datasnap ISAPI DLL 项目时遇到以下问题:
- 创建新的 Datasnap WebBroker 应用程序作为 ISAPI DLL 并使用
TDSServerModule 选项
- 打开 WebModule1 设计器并添加 TFDGUIxWaitCursor 组件
- 在项目选项中取消选择 "Link with Dynamic RTL" 和 "Link with runtime packages"
- 建造
然后生成一堆链接器错误:
- [ilink32 错误] 错误:未解析的外部 'GetDpiForMonitor'
从 C:\PROGRAM FILES 引用
(X86)\EMBARCADERO\STUDIO.0\LIB\WIN32\DEBUG\VCL.LIB|Vcl.Forms
- [ilink32 错误] 错误:未解析的外部
'SHCreateItemFromParsingName' 引用自 C:\PROGRAM FILES
(X86)\EMBARCADERO\STUDIO.0\LIB\WIN32\DEBUG\VCL.LIB|Vcl.Dialogs
- [ilink32 错误] 错误:未解析的外部 'BeginBufferedPaint'
从 C:\PROGRAM FILES 引用
(X86)\EMBARCADERO\STUDIO.0\LIB\WIN32\DEBUG\VCL.LIB|Vcl.Controls
- .....
针对 Windows 64 位平台时会显示类似错误。我注意到的是 TFDGUIxWaitCursor 是导致此问题的原因,因为在成功放置该组件之前编译项目。如果组件在 web 模块上,但如果不执行第 3 步,它甚至可以正常编译。如何解决此问题并在应用步骤 2 和 3 时成功编译?
将以下行添加到 WebModule.cpp 文件可解决问题:
#pragma comment(lib, "SHCore")
#pragma comment(lib, "UXTheme")
#pragma comment(lib, "shell32")
#pragma comment(lib, "WINDOWSCODECS")
当我想使用 C++ Builder 10.2 编译我的 Datasnap ISAPI DLL 项目时遇到以下问题:
- 创建新的 Datasnap WebBroker 应用程序作为 ISAPI DLL 并使用 TDSServerModule 选项
- 打开 WebModule1 设计器并添加 TFDGUIxWaitCursor 组件
- 在项目选项中取消选择 "Link with Dynamic RTL" 和 "Link with runtime packages"
- 建造
然后生成一堆链接器错误:
- [ilink32 错误] 错误:未解析的外部 'GetDpiForMonitor' 从 C:\PROGRAM FILES 引用 (X86)\EMBARCADERO\STUDIO.0\LIB\WIN32\DEBUG\VCL.LIB|Vcl.Forms
- [ilink32 错误] 错误:未解析的外部 'SHCreateItemFromParsingName' 引用自 C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO.0\LIB\WIN32\DEBUG\VCL.LIB|Vcl.Dialogs
- [ilink32 错误] 错误:未解析的外部 'BeginBufferedPaint' 从 C:\PROGRAM FILES 引用 (X86)\EMBARCADERO\STUDIO.0\LIB\WIN32\DEBUG\VCL.LIB|Vcl.Controls
- .....
针对 Windows 64 位平台时会显示类似错误。我注意到的是 TFDGUIxWaitCursor 是导致此问题的原因,因为在成功放置该组件之前编译项目。如果组件在 web 模块上,但如果不执行第 3 步,它甚至可以正常编译。如何解决此问题并在应用步骤 2 和 3 时成功编译?
将以下行添加到 WebModule.cpp 文件可解决问题:
#pragma comment(lib, "SHCore")
#pragma comment(lib, "UXTheme")
#pragma comment(lib, "shell32")
#pragma comment(lib, "WINDOWSCODECS")