どのようにTCHAR[]
をchar[]
に変換するのですか?TCHAR配列をchar配列に変換する
答えて
TCHARは、charまたはwchar_t(ワイド文字)のMicrosoft固有のtypedefです。
charへの変換は、実際にこれらのどれに依存しますか。 TCHARが実際にcharである場合、単純なキャストを行うことができますが、それが本当にwchar_tの場合は、文字セット間で変換するルーチンが必要になります。あなたは、任意の鋳造なしのcharになりますANSI単にTCHARを使用しているので、もし、それが文字セット(UnicodeまたはANSI)(wchar_t型またはchar)に依存する関数MultiByteToWideChar()
私たちはWidecharToMultiByteが必要なので、wchar_tからcharに変換する必要があると思います! –
を参照してください、しかし、ユニコードのためにあなたから変換する必要がありますwchar_tをcharに変換すると、WideCharToMultiByte
正直なところ私は配列を使ってポインタを使って行う方法が分かりません。wctombとwcstombsのようなAPIをMicrosoftから提供しています。最初のものは第2のものより安全性が低い。ですから、あなたは1つの配列からポインタへと1つのポインタから配列へのキャストで達成したいことができると思います。
// ... your includes
#include <stdlib.h>
// ... your defines
#define MAX_LEN 100
// ... your codes
// I assume there is no any defined TCHAR array to be converted so far, so I'll create one
TCHAR c_wText[MAX_LEN] = _T("Hello world!");
// Now defining the char pointer to be a buffer for wcstomb/wcstombs
char c_szText[MAX_LEN];
wcstombs(c_szText, c_wText, wcslen(c_wText) + 1);
// ... and you're free to use your char array, c_szText
PS:最高の解決策ではありませんが、少なくとも機能し、機能しています。
wcstombs_sを使用しないのはなぜですか?
どのようにシンプルであるかを示すコードです。
#define MAX_LENGHT 500
...
TCHAR szWideString[MAX_LENGHT];
char szString[MAX_LENGHT];
size_t nNumCharConverted;
wcstombs_s(&nNumCharConverted, szString, MAX_LENGHT,
szWideString, MAX_LENGHT);
- 1. char配列のcharをANSI Cの独自のchar配列に変換する
- 2. char配列を列挙型配列に変換しますか?
- 3. int配列をchar配列に変換する
- 4. unsigned char(配列)をunsigned int(配列)に変換する
- 5. 変換のchar配列
- 6. 再'new」TCHAR *配列
- 7. unsigned char配列をuint8_t配列に変換しますか?
- 8. C - char *をunsigned char配列に変換する
- 9. unsigned char配列をbase64文字列に変換する
- 10. 16進文字列をchar配列に変換する
- 11. C言語でchar配列をint型2d配列に変換する
- 12. バイト配列(char配列)を整数型(short、int、long)に変換する
- 13. int **配列を異なるサイズ/コンポジションのchar **配列に変換します
- 14. PowerShellはChar配列を文字列に変換します
- 15. int配列をcppのchar配列に変換してファイル名を与える
- 16. int配列をchar配列に変更する
- 17. 配列内のchar変数をint型に変換する
- 18. C++ char配列のコピーをunsigned char配列に置き換えます。
- 19. char配列をchar配列にコピーする
- 20. 文字列をchar配列に変換できません
- 21. 2D配列を配列の疎配列に変換する
- 22. 配列(配列形式)を配列に変換する - PHP
- 23. 配列を配列の配列に変換する
- 24. char配列の配列C++
- 25. char配列をintに変換するには?
- 26. 日付をISO8601からchar配列に変換する
- 27. IplImageをchar配列に変換する方法
- 28. NSStringをcharバイト配列に変換する
- 29. C++ - 8位置のint配列をcharに変換する
- 30. char配列をOpencv Matに変換する
重複:http://stackoverflow.com/questions/159442/what-is-the-simplest-way-to-convert-char-to-from-tchar-in-c-cms – Noldorin
この意志あなたは間違いなくあなたを助けます:http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc – Ajay
私はただ一般 - >文字セットを変更します:= "ユニコード文字セットを使用する"現在は作業中(char *)のtcharrです。 – user956584