1

国際化されたかなり標準的な C++ win32 アプリケーションがあります。問題は、翻訳された rc ファイルがコンパイルされないことです。コンパイルされる英語の rc と、コンパイルされない翻訳された rc の唯一の違いは、LANGUAGE、code_page、および翻訳されたテキストです。例えば:

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

なりました

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
#endif //_WIN32

IDC_TOOLMENU MENU 
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit",                       IDM_EXIT
    END
    POPUP "&Help"
    BEGIN
        MENUITEM "&About ...",                  IDM_ABOUT
    END
END

なりました

IDC_TOOLMENU MENU 
BEGIN
    POPUP "&ファイル"
    BEGIN
        MENUITEM "閉&じる",                       IDM_EXIT
    END
    POPUP "&ヘルプ"
    BEGIN
        MENUITEM "&バージョン情報 ...",             IDM_ABOUT
    END
END

日本語の rc をコンパイルしようとすると、次のエラーが発生します。

1>.\ja\Resources.rc(47) : error RC2121 : BEGIN expected in menu
1>.\ja\Resources.rc(47) : error RC2104 : undefined keyword or key name: 

この場合、Google は特に役に立ちませんでした。何か案は?

4

1 に答える 1

3

問題が見つかりました。私の翻訳した rc ファイルは UTF-8 で、rc.exe は ANSI または UTF-16LE しかサポートしていません。

于 2011-01-13T00:28:05.607 に答える