Tíquete #38836

要「Unicode 文字セットを使用する」への移行(旧:VisualStudio2017で全角ファイルが使えない)

: 2019-01-03 13:37 Última Atualização: 2020-02-23 03:16

Relator:
Dono:
Tipo:
Estado:
Fechado
Componente:
(Nenhum)
Prioridade:
8
Gravidade:
5 - Medium
Resolução:
Nenhum
Arquivo:
Nenhum

Details

#38270 で同じ現象が設定を変えたにもかかわらず、VS2017ではまだ発生する。VS2015の時点と比較しながら対応する。

追記:原因を確認。そもそもこの種の問題はソースが旧式であるため、長らくWindows版のビルド設定でとうに非推奨になっている「マルチ バイト文字セットを使用する」を使い誤魔化し続けているのが原因と思われる。これをいい加減「Unicode 文字セットを使用する」で対応できるよう、文字列型に関わる部分を丸ごと修正しないといけない。これは長期的には停滞している英語版への復帰などを目指すにも欠かせないと思われる。

Ticket History (3/8 Histories)

2019-01-03 13:37 Updated by: deskull
  • New Ticket "VisualStudio2017で全角ファイルが使えない" created
2019-01-03 20:42 Updated by: deskull
2019-01-03 20:43 Updated by: deskull
Comentário

この件は当分後回しにして当分は2.2.2リリースを目指し、よりメジャーなバージョン更新時に対応する。

2020-01-30 22:04 Updated by: deskull
Comentário

再度要請があったので前倒して2.2.2リリースまでには解決する。

2020-02-17 22:31 Updated by: shimitei
Comentário

playrecordファイルのエラー発生有無しか確認していませんが、 main-win.cのWinMain関数で使用しているsetlocaleの引数を変更するとエラーが出なくなりました。

setlocale(LC_ALL, "ja_JP.utf8"); ではplayrecordファイルでエラー発生あり。

setlocale(LC_ALL, "ja_JP"); とするとエラー発生なし。 setlocale行をコメントアウトしてもエラー発生なしでした。

VS2019で確認しています。

2020-02-17 23:47 Updated by: deskull
Comentário

VS2017でキャラデータのセーブ、ロード共に正しく動作することを確認できました。いや、長年の動作不良の原因がこれで片付くとは思いませんでした。ロケールの文字コードが現在のWindowsのデフォルト値を取り、結果ファイル名の文字コードを正しく扱えるようになったということでしょうかね。

2020-02-18 00:16 Updated by: deskull
Comentário

https://osdn.net/projects/hengband/scm/git/hengband/commits/9e39f3f130adf821d9b22fa497ca17766cffa155

よりによって全く無関係なコミットでさらりとやっていました。やらかしたことを猛省します。

2020-02-23 03:16 Updated by: deskull
  • Estado Update from Aberto to Fechado
Comentário

問題なくなったようなのでチケット完了。

Attachment File List

No attachments

Editar

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login