リソース名の付け方でも説明しましたが、最近、国際版アプリを作製する機会が増えました。
そして、問題が発生しました。 英語版のアプリで未保存のファイルを閉じようとすると、「Untitled 1 ?????????」と表示されるというのです。 これは、まさしく日本語文字列の問題です。 日本語文字列が英語版OS上で表示できないため、「?????」に変換されてしまっているのです。 そして、プロジェクト中からは、この文字列が見つかりません。 そして、探すこと数時間。。。 やっと問題のリソースを発見しました。 ファイル名が「afxres.rc」です。 これは、MFCが自動的に組み込むリソースで、通常、使っているIDEの言語によって、日本語、英語、フランス語、、、 等と、自動的に組み込まれます。 アプリケーションの「xxxx.rc」ファイルの最下部に、以下のような内容が書かれています。 #ifndef APSTUDIO_INVOKED ////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #define _AFX_NO_SPLITTER_RESOURCES #define _AFX_NO_OLE_RESOURCES #define _AFX_NO_TRACKER_RESOURCES #define _AFX_NO_PROPERTY_RESOURCES #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) #ifdef _WIN32 LANGUAGE 17, 1 #pragma code_page(932) #endif #include "res\xxxx.rc2" // Microsoft Visual C++ 以外のツールで編集されたリソース #include "l.jpn\afxres.rc" // 標準のコンポーネント #include "l.jpn\afxprint.rc" // 印刷/印刷プレビュー リソース #endif ///////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ここでは、アプリケーションのリソースにMFCのリソースを読み込んでいます。 赤字の部分が問題の箇所です。 ここで、日本語のリソースのみをインクルードしています。 「l.jpn」フォルダ内に、日本語のリソースがまとめられているのです。 いろいろやってみて、afxres.rcファイル中での2重読み込みの防止の解除や、ちゃんと英語のリソースとして読み込むために以下のように変更しました。 #ifndef APSTUDIO_INVOKED /////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #define _AFX_NO_SPLITTER_RESOURCES #define _AFX_NO_OLE_RESOURCES #define _AFX_NO_TRACKER_RESOURCES #define _AFX_NO_PROPERTY_RESOURCES #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) #ifdef _WIN32 LANGUAGE 17, 1 #pragma code_page(932) #endif #include "res\xxxx.rc2" // Microsoft Visual C++ 以外のツールで編集されたリソース #include "l.jpn\afxres.rc" // 標準のコンポーネント #include "l.jpn\afxprint.rc" // 印刷/印刷プレビュー リソース // ここから -> #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #undef __AFXRES_RC__ #include "afxres.rc" // 標準のコンポーネント #undef __AFXPRINT_RC__ #include "afxprint.rc" // 印刷/印刷プレビュー リソース #endif // <- ここまでを追加 #endif ////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED かなり、回りくどいやり方ですが、なんとか、日英の両刀になりました。。。 やっていることは、日本語版と、英語版の両方のリソースを読み込むという単純なことなのですが、、、 本当はもっと良い方法が隠されているんじゃないかと思います。
by isoq
| 2004-08-28 18:35
| 開発日記
|
PR
検索
最新の記事
カテゴリ
全体 開発日記 コンピュータ C/C++/Win32 Ubuntu / Linux Web データベース 3Dグラフィックス スクリプティング 書籍 - 技術系 フリーウェア モバイル 日記 子供のこと 旅行日記 観察日記 グルメ 写真館 天体観測 ショッピング アートワーク ヘルスケア 携帯からの投稿 誤変換検索 趣味 Windows 未分類 タグ
海外
Windows 7
旅行
C++
ドイツ
Windows
Aspire 1410
ボストン
MFC
OpenGL
出張
REGZA
天体望遠鏡
お買い得
CUDA
42Z9000
GPGPU
グルメ
XPモード
NaiNai
最新のトラックバック
以前の記事
2022年 03月 2020年 05月 2020年 04月 2020年 03月 2018年 05月 2016年 02月 2015年 04月 2015年 03月 2013年 10月 2012年 01月 2011年 12月 2011年 11月 2011年 10月 2011年 09月 2011年 08月 2011年 07月 2011年 06月 2011年 05月 2011年 03月 2011年 02月 2011年 01月 2010年 11月 2010年 10月 2010年 09月 2010年 08月 2010年 07月 2010年 06月 2010年 05月 2010年 04月 2010年 03月 2010年 02月 2010年 01月 2009年 12月 2009年 11月 2009年 10月 2009年 09月 2009年 08月 2009年 07月 2009年 06月 2009年 05月 2009年 04月 2009年 03月 2009年 02月 2009年 01月 2008年 12月 2008年 11月 2008年 10月 2008年 09月 2008年 08月 2008年 07月 2008年 06月 2008年 05月 2008年 04月 2008年 03月 2008年 02月 2008年 01月 2007年 12月 2007年 11月 2007年 10月 2007年 09月 2007年 08月 2007年 07月 2007年 06月 2007年 05月 2007年 04月 2007年 03月 2007年 02月 2007年 01月 2006年 12月 2006年 11月 2006年 10月 2006年 09月 2006年 08月 2006年 07月 2006年 06月 2006年 05月 2006年 04月 2006年 03月 2006年 02月 2006年 01月 2005年 12月 2005年 11月 2005年 10月 2005年 09月 2005年 08月 2005年 07月 2005年 06月 2005年 05月 2005年 04月 2005年 03月 2005年 02月 2005年 01月 2004年 12月 2004年 11月 2004年 10月 2004年 09月 2004年 08月 2004年 07月 2004年 06月 2004年 05月 2004年 04月 2004年 03月 2004年 02月 2001年 01月 その他のジャンル
記事ランキング
ブログジャンル
画像一覧
フォロー中のブログ
外部リンク
|
ファン申請 |
||