掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GetOpenFileNameでの日本語文字列取得 (ID:60637)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>ついでにプラットフォームやVCのバージョンも。 もぅしわけないっす。。。 OS:XP VC++2005使用 >GetOpenFileName()呼出し後の処理と、どんなファイル名を選んだ時にダメなのかも書いた方がいいです。 OPENFILENAME ofn = { 0 }; ofn.lStructSize = sizeof( OPENFILENAME ); ofn.hwndOwner = GetActiveWindow(); ofn.lpstrFilter = "All Files(*.*)\0*.*\0\0"; ofn.lpstrFile = file_name; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_PATHMUSTEXIST | ...; ofn.lpstrTitle = "..."; ofn.nMaxFileTitle = MAX_PATH; GetOpenFileName( &ofn ); std::ifstream read_file( read_file_name, std::ios::in ); こいつの read_file() でエラーになります。 デスクトップにあるファイル(日本語が含まれるパス)や日本語の含まれたファイル(ひらがな・カタカナ・漢字問わず)を read_file() に渡すとエラーとなります。拡張子等は関係なさそうです。 そして私の勘違いで GetOpenFileName() が問題ではなさそうです。。。 デバッガで GetOpenFileName() で取得したファイル名を確認したところマルチバイト文字の場合のみ、その 1byte目と 2byte目が別々で表示されていたためにおかしな文字列になっていると勘違いしていたようです。 取得した文字列を出力すると問題なかったです。 でも、read_file()で日本語文字はダメなんですかね・・・?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.