ntdll *printf*

Тема в разделе "WASM.BEGINNERS", создана пользователем Novi4ek, 5 мар 2008.

  1. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Уважаемые программисты! У меня появилась проблема следующего характера:

    я импортирую snprintf из ntdll.dll и передаю ему для форматированной обработки флоат число с помощью такой строчки:
    "aaa %f aaa"

    На выходе получаю:

    "aaa aaa"

    Вместо числа там стоит пробел. Такая же штука случается со sprintf. Подскажите пожалуйста в чем беда?
     
  2. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    http://wasm.ru/forum/viewtopic.php?id=23087
     
  3. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Спасибо за ссылку. Там упомянута либа с нормальным sprintf msvcrt.dll, но, на сколько я понимаю, она поставляется только с микрософтовским компилятором. Если это так, то не хотелось бы с собой таскать много ненужных вещей только из-за одного спринтфа.

    Экспортируется ли нормальный снпринтф какой-нибудь библиотекой, поставляемой вместе с windows?
     
  4. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    wsprintf из user32.dll
    зы msvcrt.dll есть кажись везде тока все дело в версиях, там msvcr80.dll и проч..
     
  5. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    wsprintf тоже не поддерживает флоат, это в его офф. документации даже рассказано.

    Насчет того что msvcrt.dll есть везде - интересно! Но ведь к чему тогда многочисленные страдальцы по поводу раздувания бинарника от включения ЦРТ, если ЦРТ можно подключать динамически? Вообще можно по-подробнее пожалуйста про эту библиотеку..
     
  6. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    а.. я что-то опять прозевал что именно флоат нада, сори

    по поводу msvcrt.dll то в в2к билд 2195 она версии 6.1.9844.0, _snprintf там есть, с каждым последующим выпуском винды она ессесно обновляется
     
  7. Torvald

    Torvald New Member

    Публикаций:
    0
    Регистрация:
    3 мар 2008
    Сообщения:
    9
    Эээ..., не сочтите за грубость, но почему нельзя взять msvcrt.dll, скинуть на флэху и кидать куды надо, на какую угодго машину.
    ИМХО самый лучшый вариант...
     
  8. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    угу, особенно для коммерческих приложений такой вариант идеален...
     
  9. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    За грубость не сочту но я новичок, что следует из моего ника, а новичку все всегда интересно. Вот я и интересуюсь - неоднократно видел программы где отказывались от crt и писали какие-то свои аналогичные функции - зачем, если crt поставляется с windows?
     
  10. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    ну если собирать по дефолту например 2005 студией то она будет использовать более новую библиотеку (msvcr80.dll кажется) чем та что по умолчанию в ХП и естественно чем та что w2k, поэтому и отказываются от него, а в более старых версиях нет нужных функций которые компилятор пытается засунуть в бинарник, например функции проверки стека и проч.