2 バイト文字言語が表示されない理由について、アプリケーションをデバッグしていました。内部的には、コードは表示時に適切に変換されますが、すべての文字列を char* として格納します。
適切な言語コードを使用して WideCharToMultiByte() を使用して、日本語とロシア語で解決しました。たとえば、日本語は 936 のコード ページを使用します。一度設定すると、魅力的に機能しました。また、言語と言語パックをインストールする手順もいくつかありました。
しかし、どういうわけか私のマシンは、その状態でファイルを開く必要があるという奇妙な状態になりました。
完璧な例の 1 つ (日本語 Shift-JIS での開始) は次のとおりです。
//Copyright � 1996-2008
ただし、編集されていないファイル (ソース管理内) は次のように表示されます。
//Copyright © 1996-2008
上記のスニペットのような特定のファイルをコンパイルしようとすると、それらは編集するつもりのない SDK の一部であり、これまでに起こったことはなく、チームの他の人に影響を与えることはありません。
私が得るエラーは次のとおりです。
1>e:\projects-----\sdk\sdkheader.h: エラー C2220: エラーとして扱われる警告 - 'オブジェクト' ファイルは生成されません 1>e:\projects-----\sdk\sdkheader.h:警告 C4819: ファイルには、現在のコード ページ (932) では表現できない文字が含まれています。データの損失を防ぐために、ファイルを Unicode 形式で保存してください 1>e:\projects-----\sdk\sdkheader.h : 警告 C4819: 現在のコード ページ (932) では表現できない文字がファイルに含まれています。データの損失を防ぐために、ファイルを Unicode 形式で保存します
ファイルを「エンコーディングあり」で開こうとすると、日本語の Shift-JIS が最上位の選択肢として表示されます。Unicode として保存でき、問題なくコンパイルできますが、SDK ファイルを変更することはできません。
キーボードが ENG に設定されており、ファイルを再起動して元に戻しても問題は解決しません。私はこのモードで永久に立ち往生しているようで、通常に戻る方法がわかりません. Windows 8で実行しています。
他の誰かがこの狂ったバグに見舞われましたか? 私はアイデアを探しています。