title: Are there guidelines for updating C++Builder applications for C++Builder 2009?
body: <p>I have a range of Win32 VCL applications developed with C++Builder from BCB5 onwards, and want to port them to ECB2009 or whatever it's now called.</p>
  
  <p>Some of my applications use the old TNT/TMS unicode components, so I have a good mix of AnsiStrings and WideStrings throughout the code. The new version introduces UnicodeString, and a bunch of #defines that change the way functions like c_str behave.</p>
  
  <p>I want to modify my code in a way that is as backwards-compatible as possible, so that the same code base can still be compiled and run (in a non-unicode fashion) on BCB2007 if necessary.</p>
  
  <p>Particular areas of concern are:</p>
  
  <ul>
  <li>Passing strings to/from Win32 API
  functions</li>
  <li>Interop with TXMLDocument</li>
  <li>'Raw' strings used for RS232 comms, etc.</li>
  </ul>
  
  <p>Rather than knife-and-fork the changes, I'm looking for guidelines that I can apply to ease the migration, while keeping backwards compatibility wherever possible.</p>
  
  <p>If no such guidelines already exist, maybe we can formulate some here?</p>