title: Unresolved external SHCreateItemFromParsingName referenced VCL.LIB / Dialogs
body: <p>I have a C++ Builder application I'm porting from C++ Builder 6 to XE on Windows XP.</p>
  
  <p>A number of 3rd party controls are in use as well.</p>
  
  <p>I'm compiling with Dynamic RTL = False</p>
  
  <p>If I compile without run time packages I get the subject error message:</p>
  
  <p>[ILINK32 Error] Error: Unresolved external 'SHCreateItemFromParsingName' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\8.0\LIB\WIN32\RELEASE\VCL.LIB|Dialogs</p>
  
  <p>If I compile with run time packages the error goes away.</p>
  
  <p>Googling around reveals the SHCreateItemFromParsingName has to do with common control dialogs one can invoke with WinAPI calls.  </p>
  
  <p>All 3rd party controls I use work in a new/separate project; thus this problem does appear to be a simple #define or something.... (not sure)</p>
  
  <p>I can not find anything in my project source that would cause this.  I do have an TOpenDialog and a TSaveDialog in my project that replaced an older TMC components of the same names (TntOpenDialog, TntSaveDialog) that were used in CBuilder6 to give Unicode support for the same.  Converted to the ones that ship with the VCL has not resolved this problem.  </p>
  
  <p>There is an Embarcadero thread on this but that person appear to solve by creating #define's to build their app for WinXP and new compatibility.  Under XE, I set the C++ Compiler option to target Windows XP and newer and that did not work either.</p>
  
  <p>Tried adding:</p>
  
  <p>"#define WINVER 0x0502"</p>
  
  <p>"#define _WIN32_WINNT 0x0502"</p>
  
  <p>per MSDN link here:
  <a href="http://msdn.microsoft.com/en-us/library/aa383745%28v=vs.85%29.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa383745%28v=vs.85%29.aspx</a></p>
  
  <p>to no avail.</p>
  
  <p>Other than the Open/SaveDialog components, anyone have any advise or seen this before?</p>