文字列をSJISにする
CStringに放り込めばSJISになってくれるようです。
最後はWindowsの.NET環境と言う事でC++/CLIでの例をおまけとして。幾つか試してみましたが結局はMFC/ATLのCStringを使って変換するのが一番簡単で間違いが無いようです。
// ------ C++/CLI (おまけ) ----------------------------------
UnicodeからShift-JISへの変換 - LangEdge Weblog
// マネージコードUnicode文字列を変換してMFCのCStringに格納
String^ str = L"日本語";
CStringA sjisStr = str; // 手抜きだけど一番楽かと…
// ----------------------------------------------------------
今作業しているプロジェクトでしか試していませんが、以下のような感じで、なんだかうまくいきました。
// Unicodeの元データ .. char strCurPw; CString csCurPw( strCurPw ); // void hoge( LPCTSTR str ); // という感じのSJIS文字列が欲しい関数に渡す. hoge( csCurPw );
TCHARとか文字コードとかあんまり詳しく追いたくないので、この辺で逃げまくります。