VC++ 2003 CFlie.OpenとVistaのJis2004と不都合 – プログラミング – Home

通知
すべてクリア

VC++ 2003 CFlie.OpenとVistaのJis2004と不都合


よすけ
 よすけ
(@よすけ)
ゲスト
結合: 24年前
投稿: 4
Topic starter  

VC++ 2003で以下のコードをコンパイルしました:

CFile fp;
int ret = fp.Open( name, CFile::modeRead)

if ( !ret ) return -1; /* ファイル開けません */

コンパイルしたバイナリをWindows XPで問題なく実行できますが、
Windows Vistaで実行して、

ファイル名 name = 叱る ( JIS 2004の文字コード)にすると !ret = 1となってしま
います。

ファイル名 nameがJIS2004の文字を含む場合,Vistaにも, XPにも対応させたい,つまり、
fp.Openできる)のですが、
どうすればよいでしょうか?

よろしくお願いします。


引用解決済
トピックタグ
yoh2
 yoh2
(@yoh2)
ゲスト
結合: 18年前
投稿: 70
 

TCHAR周りの設定が、UNICODEではなくMBCSになっていたりしませんか?
MBCS (要するにCP932) では、JIS 2004の叱を表現できないのでエラーになると思いま
す。

なお、微妙に環境が違いますが、VC++ 2005 Expressで (MFCは使えないので)
CreateFile()を
使ってみたところ、Vista(64ビット版)で叱る.txt (JIS 2004の文字コード)が開けまし
た。


返信引用
よすけ
 よすけ
(@よすけ)
ゲスト
結合: 24年前
投稿: 4
Topic starter  

yoh2さん、

返事をありがとうございます。

VC++2005がjis2004をサポートするかもしれないですけど、バックワード互換性を考えた
うえでサポートさせないことを決めました。

また別件でよろしくお願いします^^


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました