C言語で、unicodeを扱うには?

解決


ゴートラ  2006-09-11 08:50:43  No: 96588

初めまして。ゴートラと申します。

私は、下記の環境で開発をやっております。

  統合開発環境:Microsoft Visual Studio .NET 2003
  言語:C++(但し、ソースファイルは.cppでなく.c)
  種類:Win32 プロジェクトのコンソール アプリケーション

現在、FindFirstFileを使用し、
指定したフォルダ以下のファイル一覧を作成しようとしているのですが、
Unicodeでしか文字コードが割り当てわれていない文字がフォルダ名に存在すると、
Unicode文字の部分が「?」に変換され、
「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。」
というエラーが返ってきてしまいます。

出力結果が?になっていてもかまいませんが、
該当フォルダ以下のファイル名が一つも取得できなくて困っています。

どうぞ、よろしくお願いします。


Blue  2006-09-11 18:33:16  No: 96589

とりあえず、いた違い。(ここはVB用掲示板)
VC++掲示板があるので、こちらはリンクを貼り、解決して閉じてください。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi


Blue  2006-09-11 18:36:06  No: 96590

ちなみに、回答ですが、デフォルトの設定で FindFirstFile 関数は
Unicodeに対応していません。

文字セットをUnicode文字セットにして使うか、明にFindFirstFileWを使ってください。
(文字セットを変更する場合、TCHAR型や_Tマクロ等を使ってください。)


ゴートラ  2006-09-11 19:17:25  No: 96591

Blueさん

回答ありがとうございます。

本件、一旦解決とし、
VC++掲示板にて再度書き込みます。


Blue  2006-09-11 19:34:18  No: 96592

つうか、無視しないで
>こちらはリンクを貼り
をやってもらいたいですね。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200609/06090021.txt


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加