__security_check_cookie@4 + /

Тема в разделе "LANGS.C", создана пользователем ntp, 13 окт 2008.

  1. ntp

    ntp New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2008
    Сообщения:
    30
    Трабла такая: Пытаюсь отключить CRT библиотеку

    #pragma comment(linker, "/ENTRY:qqq")
    #pragma comment(linker, "/NODEFAULTLIB")
    #pragma comment(linker, "/SUBSYSTEM:CONSOLE")

    void qqq()
    {
    char str[50];
    ExitProcess(0);
    }

    Параметр "/NODEFAULTLIB" насколько я понимаю отключает библиотеку времени выполнения (CRT или RTL)

    После компиляции вылетает сообщение об ошибке:
    LNK2001: unresolved external symbol @__security_check_cookie@4
    Если убрать #pragma comment(linker, "/NODEFAULTLIB") , то ошибка исчезает.
    Хотелось бы узнать что это такое. В разных источниках пишут по-разному, но как я понял это проверка на переполнение стека. Соответственно возникает вопрос как этого избежать линкуя с параметром /NODEFAULTLIB ?

    P.S. Еще хотел спросить есть ли в MASM32 подобная директива: pragma comment(linker,"...") , чтобы указывать параметры линкеру в исходнике ?
     
  2. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Убрать в настройках buffer security check. При компляции в зависимости от версии VS либо убрать ключ /GS (для VS2003) либо добавить ключ /GS- (для VS2005). Либо перейти на VC++ 6.0
     
  3. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706