Saga
Saga

Reputation: 23

Unresolved external SHCreateItemFromParsingName referenced VCL.LIB / Dialogs on C++Builder XE8

I have a application of C++Builder6, and I'm migrating it to C++BuilderXE8 via C++Builder2007 on Windows7. I compiled with success on C++Builder2007. But I have a error on C++BuilderXE8:

[ILINK32 Error] Error: Unresolved external 'SHCreateItemFromParsingName' referenced from C:\PROGRAM FILES\EMBARCADERO\STUDIO\16.0\LIB\WIN32\RELEASE\VCL.LIB|Vcl.Dialogs

Any ideas?

Upvotes: 0

Views: 230

Answers (2)

Thomas Jucker
Thomas Jucker

Reputation: 11

One solution - if you do not use VCL - is to edit the project file and remove all vcl.lib imports.

Upvotes: 1

Remy Lebeau
Remy Lebeau

Reputation: 597875

SHCreateItemFromParsingName() is exported from SHELL32.DLL. Make sure you have added SHELL32.LIB (32bit) or SHELL32.A (64bit) to your project. You can find them in the following folders of your IDE installation:

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

You can either add the actual .lib/.a file to your project, or you can use a #pragma comment(lib) statement in your C++ code.

Upvotes: 0

Related Questions