Неразрешенный внешний SHCreateItemFromParsingName, на который ссылается VCL.LIB / Dialogs в C++Builder XE8

У меня есть приложение C++Builder6, и я перевожу его на C++BuilderXE8 через C++Builder2007 в Windows7. Я с успехом скомпилировал на C++Builder2007. Но у меня есть ошибка на C++BuilderXE8:

[Ошибка ILINK32]: Неразрешенный внешний SHCreateItemFromParsingName, на который ссылается C:\PROGRAM FILES\EMBARCADERO\STUDIO\16.0\LIB\WIN32\RELEASE\VCL.LIB|Vcl.Dialogs

Есть идеи?

2 ответа

Одно из решений - если вы не используете VCL - это отредактировать файл проекта и удалить все импортированные файлы vcl.lib.

SHCreateItemFromParsingName() экспортируется из SHELL32.DLL, Убедитесь, что вы добавили SHELL32.LIB (32 бита) или SHELL32.A (64bit) для вашего проекта. Вы можете найти их в следующих папках вашей установки IDE:

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

Вы можете либо добавить фактический файл.lib/.a в свой проект, либо использовать #pragma comment(lib) утверждение в вашем коде C++.

Другие вопросы по тегам