mbstowcs_s(マルチバイト→ワイド文字)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
く~よん

mbstowcs_s(マルチバイト→ワイド文字)

#1

投稿記事 by く~よん » 16年前

初めまして。
マルチバイト文字をワイド文字に変換しようとして、
期待通りの動作をしなくて困っています。

--------------------------------------------------------------------------------
 size_t henkansaretamojisu = 0;
 wchar_t wtextname[MAX_PATH] = {0}
 char textname[MAX_PATH] = {"ファイルリスト.txt"};
 
 mbstowcs_s(&henkansaretamojisu,wtextname,sizeof(MAX_PATH),textname,_TRUNCATE);

---------------------------------------------------------------------------------

期待している動作:wtextnameに変換された文字列「ファイルリスト.txt」が格納される。
現在の動作   :wtextnameに変換された文字列「ファイ」が格納される。

「_TRUNCATE」は3以外の数字に置き換えるとシステムエラーで落ちてしまいます。
(retsize<=sizeInwords と言われるのでバッファオーバーフローのようです。)

具体的にどう直せばよいのか分からないので質問させていただきました。
よろしくお願いします。

Mist

Re:mbstowcs_s(マルチバイト→ワイド文字)

#2

投稿記事 by Mist » 16年前

3番目の引数が間違いです。

MAX_PATHだけにするか、sizeof(wtextname)かな。

く~よん

Re:mbstowcs_s(マルチバイト→ワイド文字)

#3

投稿記事 by く~よん » 16年前

回答ありがとうございます。
無事解決しました。

MSDNって難しい言葉が
たくさん使われてて何度読んでも意味がピンときません(^^;
慣れるまで読み漁ります。

く~よん

Re:mbstowcs_s(マルチバイト→ワイド文字)

#4

投稿記事 by く~よん » 16年前

解決押し忘れてました。

閉鎖

“C言語何でも質問掲示板” へ戻る