none
Проблема с шрифтом в 2008 RRS feed

  • Вопрос

  • Проект мфц - диалоговое окно с потомками.
    Принес проект с работы домой. Были удалены папки debug/release и файл .ncb чтобы меньше места занимало. И там и там студия 2008 с feauter pack , никогда не было проблем с переносом проектов. Открываю сейчас дома - в диалогах и во всех контролах вместо русского текста кракозябры. :(
    Шрифт courier new, язык диалога английский (США) . Что это может быть и как бороться?
    P.S. Причем в любых проектах, даже которые принесены ранее и лежат дома не первый день, такое ощущение, что буквально вчера-сегодня что-то произошло, но я ничего не трогал, разве что установил игрушку на комп :)
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 22:23 MSDN Forums consolidation (От:Разработка Windows-приложений)
    29 января 2010 г. 18:40

Ответы

  • Студия вставляет в rc-файле перед английскими ресурсами строчки
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
    #ifdef _WIN32
    LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
    #pragma code_page(1252)
    #endif //_WIN32
    

    Т.е. там и должны быть крякозяблики, насколько я помню :)
    Хотите русские буквы - поставьте диалогу язык русский или neutral

    Почему раньше работало - неизветно.
    • Помечено в качестве ответа stdcall24 30 января 2010 г. 9:50
    29 января 2010 г. 23:13

Все ответы

  • Студия вставляет в rc-файле перед английскими ресурсами строчки
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
    #ifdef _WIN32
    LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
    #pragma code_page(1252)
    #endif //_WIN32
    

    Т.е. там и должны быть крякозяблики, насколько я помню :)
    Хотите русские буквы - поставьте диалогу язык русский или neutral

    Почему раньше работало - неизветно.
    • Помечено в качестве ответа stdcall24 30 января 2010 г. 9:50
    29 января 2010 г. 23:13
  • Вписывать в реестр хаки типа
    "1250"="c_1251.nls"
    "1252"="c_1251.nls"
    - это не комильфо. И приводит к "работает на моей машине", т.е. на других в той же проге будут крякозяблы. И их юзеры будут гуглить, вписывать хаки, потом делать кривые проги... эдакий круговорот кряозябл в природе.
    29 января 2010 г. 23:16
  • Спасибо. Только теперь я пригляделся к файлу .rc и увидал, что несмотря на выбор юникода, там всё в ansi . Соответственно и кодовая страница либо 1251, либо 1252 и т.д.
    Действительно странно, почему у меня работало. Я посмотрел свои программы, только несколько последних в свойствах диалога имеют английский (США), а не русский. Возможно это следствие установки фьючер пака, т.к. я руками обычно не устанавливаю язык, все по дефолту.
    Но опять-таки повторяю, до того как принес домой - все прекрасно отображалось, причем и сейчас, сидя дома, я вижу в .rc , что у 3 диалогов вместо русских букв крякозябры, а у 2 нормальные символы (это я про файл .rc , на самом диалоге везде крякозябры). И думаю на работе тоде все будет норм..
    Мистика, ёптель :(
    Вопрос. На чистой английской/японской/французской ...  виндах будет ли диалог с нормальными русскими подписями? Т.е. в винде всегда присутствуют все кодовые таблицы?
    30 января 2010 г. 9:49
  • Кодовые таблицы доставляются в Control Panel/Regional and Language Settings. На чистой английской XP русских скорее всего не будет. Насчет висты/7 - не уверен.
    По поводу юникода в RC: http://msdn.microsoft.com/en-us/library/8caac1dw.aspx
    30 января 2010 г. 10:09