programing:cpp_builder:cpp_builder-lcmapstring
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| programing:cpp_builder:cpp_builder-lcmapstring [2020/02/04 17:05] – [参考] yoko | programing:cpp_builder:cpp_builder-lcmapstring [2026/07/28 13:16] (現在) – 外部編集 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | C++Builder 全角→半角 変換 | + | ====== |
| - | ========================= | + | Unicodeの全角文字を半角文字に変換するようにしたので備忘録を残す。 |
| - | Unicodeの全角文字を半角文字に変換するようにしたので備忘録を残す。 | + | |
| - | Windows APIの(`LCMapString`)関数を使って変換する。 | + | |
| - | コーディング例 | + | ===== コーディング例 |
| - | ------------- | + | Windows APIの `LCMapString` 関数を使って変換する。 |
| + | <code c> | ||
| + | Char buff[130]; | ||
| + | PChar s: | ||
| + | | ||
| + | String text = L" | ||
| + | int len = text.Length(); | ||
| + | | ||
| + | // DWORD flags = LCMAP_FULLWIDTH; | ||
| + | DWORD flags = LCMAP_HALFWIDTH; | ||
| + | // DWORD flags = LCMAP_HIRAGANA; | ||
| + | // DWORD flags = LCMAP_KATAKANA; | ||
| - | 参考 | + | const int size = len + 1; |
| - | ---- | + | if (size < 128) { // バッファに入る時だけ変換する |
| + | s = buff; | ||
| + | LCMapString(GetUserDefaultLCID(), | ||
| + | flags, | ||
| + | text.c_str(), | ||
| + | size, | ||
| + | (LPWSTR)s, | ||
| + | size); | ||
| + | s[len] = 0; | ||
| + | } | ||
| + | else { | ||
| + | s = text.c_str(); | ||
| + | } | ||
| + | |||
| + | ShowMessage(s); | ||
| + | </ | ||
| - | 1. [[https:// | + | |
| - | 2. [[http:// | + | |
| + | ===== 参考 ===== | ||
| + | |||
| + | - [[https:// | ||
| + | | ||
programing/cpp_builder/cpp_builder-lcmapstring.1580803559.txt.gz · 最終更新: by yoko
