2017-12-28 18 views
1

古いC++ MFCプロジェクトをVisual Studio 2005から新しいバージョンに転送したいとします。このプロジェクトでは、現在のVisual Studioでサポートされていないマルチバイト文字セットが使用されています。したがって、最初のステップは、プロジェクトをキャラクタセットから独立させることです。仕事中の同僚は、各テキストの周りにマクロ_T()を置くと、これを行うことができると私に言った。 残念ながら、このプロジェクトには多くの静的テキストが含まれており、マクロの追加には数週間かかります。古いVisual Studio C++プロジェクトをマルチバイト文字セットから変換する

他に方法はありますか?

+0

この質問は不明です。 「サポートされなくなったマルチバイト文字セット」は、サポートが落とされた特定の文字セットのように聞こえますが、一般的にはMBCSesのサポートを依頼しようとしています。また、コンパイラやフレームワークではなくIDEからのサポートについて話しているので、ソースファイル(または.vcprojファイル)がMBCSに保存されているかどうか、または実際にコードの問題であったかどうか疑問に思っています。 –

+2

MBCSは、MFCと同様にコアオペレーティングシステムでもサポートされています。壊れた文字エンコーディングを使用することは望ましくない可能性があり、20年も経っていませんが、まだサポートされています。あなたが意味することを明確にする必要があります* "もうサポートされていません" *。 – IInspectable

+1

'_T()'マクロは、Windows 95とWindows NTの両方でほぼ同じコードベースをコンパイルできるように発明されました。これらを追加すると少し遅れそうです。 –

答えて

4

残念なことに他の方法はありません。正規表現やsedのようなテキストエディタを使って、テキスト編集を自動化しようとすることができます。

しかし、個人的に私はマルチバイト文字に関連するコードが残っていないことを手動ですべてのコードをチェックすることを好む:など、_tcslen代わりのstrlen_TCHAR代わりのcharを使用検討する

その他の変種は、コードを作ることです明示的widecharsを使用:などwcslenの代わりstrlenwchar_t代わりのcharL"some string"代わりの_T("some string")

UPD:また、私はいくつかのを見つけました良いニュース "非推奨警告[廃止予定のMBCSのMFCサポート]はVC2017のMFCから削除されており、今後もMBCSのサポートを提供していきます。 (https://blogs.msdn.microsoft.com/vcblog/2013/07/08/mfc-support-for-mbcs-deprecated-in-visual-studio-2013/)、そのまま放置することもできます。

関連する問題