VC++ (Unicodeよ.勘弁してくれ!)[edit]
sjis -> unicode[edit]
- 構成プロパティ - 詳細 - 文字コード - Unicode 文字セットを使用する(マルチバイトから変更)
- 構成プロパティ - C/C++ - すぺてのオプション - その他のオプション - /utf-8 を追加
- リソースファイルの #pragma code_page(932) を #pragma code_page(65001) に変更.
MFC ライブラリ[edit]
- nafxcw.lib: Release version
- nafxcwd.lib: Debug version (default)
- uafxcw.lib: Release version with Unicode support
- uafxcwd.lib: UAFXCWD.LIB Debug version with Unicode support
文字コード変換[edit]
いろいろ面倒(何が何だか さっぱりさっぱり)[edit]
- キャストはできる限りやらないほうが良い気がする.
- char[] から LPWSTR に変換できません : (LPWSTR)char[]
- char[] から LPCTSTR へ変換できません : (LPCTSTR)char[]
- LPCSTR から LPCWSTR に変換できません : (LPCWSTR)char[]
- const char[] から wchar_t に変換できません : _T(const char[])) or TEXT(const char[])
- CString から LPCSTR に変換できません : jbxwl::ts2mbs(CString)
- CString str; str.GetString()
Buffer tc2Buffer(TCHAR* tchar, int size=-1);
Buffer ts2Buffer(LPCTSTR str, int size=-1);
CString mbs2ts(char* str);
inline char* ts2mbs(LPCTSTR str) // 要 free. NULL は絶対に返ってこない
{
Buffer buf = ts2Buffer(str);
return (char*)buf.buf;
}
//
int copy_ts2Buffer(LPCTSTR str, Buffer* buf);
int cat_ts2Buffer (LPCTSTR str, Buffer* buf);