ошибка при printf()

Тема в разделе "LANGS.C", создана пользователем XshStasX, 30 авг 2010.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    В общем при попытке использовать printf/scanf процесс завершается с ошибкой(0xff).
    В ХР, таких проблем не было, а вот на win 7 появились(.
    Компилятор: Visual Studio 2008.
    В чем дело?

    Если же в настройках проекта линкеру указать:
    /MDd - то все ок.
    /MTd - то printf/scanf не работают.
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Сэмпл?
     
  3. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Это что?

    В общем если библиотеки "времени выполнения" делать как отдельные dll то проблем нету, если же их линковать вместе с приложением то начинаются проблемы.

    Добавил тестовый проект к теме.

    Оказывается проблема начинается когда делаешь указываешь точку входа.
    делал так: /entry:main
    и сама main:
    Код (Text):
    1. int __cdecl main(int argc, char** argv)
    2. {
    3.     printf("asdf");
    4.     return 0;
    5. }
    Видимо нужно самому вызвать какую то функ. инициализации ?
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    XshStasX
    В этом же случае без рантайм библиотеки. Не стоит так делать.
     
  5. expert

    expert New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2009
    Сообщения:
    151
    XshStasX
    ты указываешь свою точку входа, поэтому рантайм библиотека не инициализована(посмотри стандарный стаб).
     
  6. osox

    osox New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2009
    Сообщения:
    280
    // мои догадки
    когда /MD /MDd даже если со своей точкой входа библиотека какую никакую инициализацию все равно выполняет при DLL_PROCESS_ATTACH а если /MT /MTd да еще и со своей точкой входа то инициализации она не выполняет вообще никакой