0

我有一个 C++Builder6 的应用程序,我正在通过 Windows7 上的 C++Builder2007 将它迁移到 C++BuilderXE8。我在 C++Builder2007 上编译成功。但是我在 C++BuilderXE8 上有一个错误:

[ILINK32 错误] 错误:从 C:\PROGRAM FILES\EMBARCADERO\STUDIO\16.0\LIB\WIN32\RELEASE\VCL.LIB|Vcl.Dialogs 引用的无法解析的外部“SHCreateItemFromParsingName”

有任何想法吗?

4

2 回答 2

1

一种解决方案 - 如果您不使用 VCL - 是编辑项目文件并删除所有 vcl.lib 导入。

于 2015-11-18T09:48:57.330 回答
0

SHCreateItemFromParsingName()是从 导出的SHELL32.DLL。确保您已将SHELL32.LIB(32 位)或SHELL32.A(64 位)添加到您的项目中。您可以在 IDE 安装的以下文件夹中找到它们:

$(BDS)\lib\win32\release\psdk
$(BDS)\lib\win64\release\psdk

您可以将实际的 .lib/.a 文件添加到项目中,也可以#pragma comment(lib)在 C++ 代码中使用语句。

于 2015-07-02T18:26:03.323 回答