0

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?

ArK
  • 20,698
  • 67
  • 109
  • 136
Saga
  • 23
  • 3
  • possible duplicate of [Unresolved external SHCreateItemFromParsingName referenced VCL.LIB / Dialogs](http://stackoverflow.com/questions/4403887/unresolved-external-shcreateitemfromparsingname-referenced-vcl-lib-dialogs) – Remy Lebeau Jul 03 '15 at 15:52

2 Answers2

1

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

0

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.

Remy Lebeau
  • 555,201
  • 31
  • 458
  • 770
  • I add 'shell32.lib' in the folder of IDE installation to my project, but I still have same error. How do I resolve this problem? – Saga Jul 03 '15 at 06:20