title: Modifying C++ DLL to support unicode - common pitfalls to avoid?
body: <p>I have a windows DLL that currently only supports ASCII and I need to update it to work with Unicode strings.  This DLL currently uses char* strings in a number of places, along with making a number of ASCII Windows API calls (like GetWindowTextA, RegQueryValueExA, CreateFileA, etc).</p>
  
  <p>I want to switch to using the unicode/ascii macros defined in VC++.  So instead of char or CHAR I'd use TCHAR.  For char* I'd use LPTSTR.  And I think things like sprintf_s would be changed to _stprintf_s.</p>
  
  <p>I've never really dealt with unicode before, so I'm wondering if there are any common pitfalls I should look out for while doing this.  Should it just be as simple as replacing the types and method names with the proper macros be enough, or are there other complications to look out for?</p>