setlocale r0

Тема в разделе "WASM.NT.KERNEL", создана пользователем Proj, 19 окт 2011.

  1. Proj

    Proj New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2011
    Сообщения:
    3
    Есть юзермодная функция setlocale из msvcr100.dll. Пытаюсь найти нечто подобное, но для r0, гуглил - ничего такого нет. Посмотрел setlocale в дизассемблере, но не увидел, чтобы она ссылалась на какую нибудь системную функцию. И не особо понял как оно работает. Подскажите, как можно изменить локаль в ядре?
     
  2. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Изменить для чего? вы юзаете msvcr в ядре?
     
  3. Proj

    Proj New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2011
    Сообщения:
    3
    нет это нужно для функции RtlUnicodeStringToAnsiString. Проблема в том, что в китайской/арабской/хз винде если переводить строку из юникуд в анси, и при этом юникодавая строка будет иметь русские символы, то функция RtlUnicodeStringToAnsiString заменит их на "?????". А нужно, несмотря ни на что конвертировать строку из юникод в анси.
     
  4. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Proj
    From MSDN
    Вообщем так делать не хорошо, как варинат юзать С рантайм, но в целом что то вы делаете не так.(( Ну архитектурно(или дизайнерски)
     
  5. Proj

    Proj New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2011
    Сообщения:
    3
    Да. Но в общем-то остальные языки меня не интересуют. Если локаль не поддерживает 1251, её бы следует установить и можно смело конвертить не боясь потерять символы. Но как это сделать из ядра, хз. Ещё как вариант конечно использовать свой аналог RtlUnicodeStringToAnsiString. Вообще конечно интересно как с этим правильно бороться
     
  6. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Использовать для этих целей юзермод.
     
  7. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Конвертируй в UTF-8. Это очень легко сделать вручную, и вопросиков не будет ни в какой локали.
     
  8. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    посмотреть в каком секторе юникода лежит кириллица (кажется, в 4) и перекодировать вручную
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    qqwe
    В 4 секторе кириллицы никогда не было ) с чего вы взяли? Вопрос найти на диске кириллицу - довольно таки непростой. Может подскажете метод поиска?
     
  10. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    запросто

    http://www.unicode.org/charts/

    для кир - http://www.unicode.org/charts/PDF/U0400.pdf . таки да, в 4-м

    (интересно, на http://unicode.org/cldr/apps/survey для языка Russian указаны Moldova, Russia, Ukraine. а для других быв ссср? ну за исключением грузии и эстонии, которые все понимают, но не говорят)
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    qqwe
    Откройте винхекс хотя бы да и гляньте, что там по смещению на диске в 4ом секторе. И кстати - почему 4ый? если размер сектора 0х200 (по умолчанию) то это будет 3тий сектор.
    Если вы имеете ввиду память, то тоже не в ту степь.
    Если же вы имеете ввиду "сектора юникода", то где в винде лежать начало секторов юникода? Мыж тут винду обсуждаем.
     
  12. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    TermoSINteZ
    гм, вы счас под клерка пародируете? у меня немного не очень хорошо с пониманием юмора.
    если под клерка, то в пост надо добавить секции про дураков, аверов, скрипты и смотреть не юзермодным винхексом, а высокоуровневым масмом и только с кернел уровня.
     
  13. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    qqwe
    Вообще то, я никого не пародирую. А серьезно спрашиваю, как вы собрались получать юникод таблицу из кернела. Расскажите, раз предложили решение.
     
  14. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    На фига её получать? для чего это строка будет использоватся? думаю надо отсюда начать.
     
  15. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    shchetinin
    Тоже верно. Но обычно пляшут от постановки задачи из серии "нужно" ) А потом думают ))) а нужно ли.
     
  16. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    у вас строка есть? таблицы по адресам выше. берете очередной символ типа wchar_t (в выни short, 16 бит), смотрите его старший байт (я его назвал сектор, но может оно зовется и по другому. область?).
    если 0x0, то ascii + что там из немецкой и французской латинницы.
    если 0x4, то кириллица. прямцю ссыль на таблицу привел выше.
    если другая цифра, то другое. рамки там, или стрелочки. структура уникода не так сложна - смотрите в вике или на сайте юникода область (сектор, раздел, коробочку, как-удобно-так-и-называйте-себе) и по табице с того же сайта юникода перекодируйте во что хотите.
     
  17. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    qqwe
    Конкретнее тут пожалуйсто, какие именно адреса. Если вы про адреса , что в доке. Там ничего. Скрин сделать ?
     
  18. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    пост #10.
     
  19. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    qqwe
    Еще конкретнее. Или вы мои посты не читаете до конца?
     
  20. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    TermoSINteZ
    фух. вы выпимши или ищете повода меня забанить? хотите забанить - воля ваша. баны на форумах, обычно, положительно сказываются на работе.