
日本語を含む文字列が格納されたCstringをcharに変換したく
以下のプログラムを作成しましたがwcstombs_s() でエラーに
なってしまいます。(戻り値が EILSEQ)
どうしたらいいか、アドバイスをいただけないでしょうか?
CString csPass("Testテスト");
char cName[512];
size_t sz = 0;
errno_t err;
err= wcstombs_s(&sz, cName, sizeof(cName), csPass.GetString(), _TRUNCATE);
if(0 != err){
return;
}
【環境】
WindowsXP
VC++2008
No.1ベストアンサー
- 回答日時:
CStringクラスが使えるならCStringAクラスを介してchar型配列に入れてみては。
CString csPass(_T("Testテスト"));
char cName[512];
strcpy_s(cName, CStringA(csPass));
UnicodeにあってCP932(Shift_JIS)にない文字はおかしくなりますけど。
(wchar_t→char変換ということである以上回避しようがない。)
回答ありがとうございました。
確認したところ上手くいきました。頂いた注意点に気を付けながら使用したいと思います。
今回は本当にありがとうございました。
No.2
- 回答日時:
MicrosoftのATLやMFCで提供されているCStringクラスには
GetString()というメソッドはなかったと思いますが、
独自作成のCStringクラスですか?
csPass.GetString()の結果をデバッガ等で
確認してみる必要があるように思います。
Microsoft標準のCStringクラスであれば、
wcstombs_s(&sz, cName, sizeof(cName), (LPCTSTR)csPass, _TRUNCATE);
でよさそうに思います。
(参考)
http://msdn.microsoft.com/ja-jp/library/awkwbzyc …
回答ありがとうございます。
CStringクラスは独自作成のものではありませんが、私自身CStringクラスについてまだまた勉強不足のようです。
教えていただいた参考ページもとても勉強になりました。
今回は回答いただき本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
CString から LPCTSTRの型に変換
C言語・C++・C#
-
CStringをwchar_tに変換したい
C言語・C++・C#
-
-
4
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
5
エディットボックスの入力制限について
C言語・C++・C#
-
6
ネットワーク切断を検出するには?
C言語・C++・C#
-
7
ダイアログの上のテキストボックスの、初期値を設定する方法が分かりません・・・・
C言語・C++・C#
-
8
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
9
画面を強制的に再描画させる方法
C言語・C++・C#
-
10
Connectエラーが出てしまう・・・。
C言語・C++・C#
-
11
CStringの中から数字だけの場合と、その他が含まれる場合を識別する方法
C言語・C++・C#
-
12
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
13
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
14
EDITコントロールで入力できる文字を制限するには?
C言語・C++・C#
-
15
CStringの配列要素を関数で受け渡しするには?
C言語・C++・C#
-
16
std::stringからLPCWSTR型への変換
C言語・C++・C#
-
17
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
18
ListBoxで改行したい
Visual Basic(VBA)
-
19
C言語のPathFileExistsについて
C言語・C++・C#
-
20
c++,ある関数のクラスから別のクラスの関数を呼ぶ
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中学のクラス数
-
UMLのクラス図はmain()も含むん...
-
Cstring(日本語含む)をcharに...
-
サーブレットを始めようとした...
-
packageとimport の違いって?
-
CListCtrlクラスに初期化する関...
-
僕の出身中学校は200人同級生が...
-
明示的なserialVersionUIDの意...
-
どこからも呼ばれていない無意...
-
「囲うインスタンス」のエラー...
-
進学校通ってたんですけど、眼...
-
java eclipse 型に解決できません
-
dllと同じプロジェクトにする方法
-
3年間同じクラスになる確率
-
クラス名の「~Factory」って何?
-
ヒグマを撃退
-
エクセルVBAでのwitheventsにつ...
-
IPアドレスの3バイト目の呼び方
-
「タイプ初期化子が例外をスロ...
-
eclipse-Tomcatでのデバッグに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヒグマを撃退
-
中学のクラス数
-
そんなにお金がなくても年に1度...
-
UMLのクラス図はmain()も含むん...
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
配列の重複する値とその個数を...
-
EclipseでJSPのコンパイルエラー
-
僕の出身中学校は200人同級生が...
-
コンボボックスのマウスホイー...
-
main()を持つクラスが2つ以上...
-
Cstring(日本語含む)をcharに...
-
同一パッケージにあるクラスが...
-
IPアドレスのクラスAを取得して...
-
dllと同じプロジェクトにする方法
-
標準モジュールとクラスモジュ...
-
VBAもしくはVB6:クラスの中で...
-
Sub-LVDS規格とは
-
同じクラスにならない確率を教...
-
複数のクラスで共通した関数を...
おすすめ情報