VC++ .NET + /NODEFAULTLIB

Тема в разделе "WASM.ZEN", создана пользователем ZeroMemory, 18 дек 2005.

  1. ZeroMemory

    ZeroMemory New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    79
    Приветствую господа!



    Я тут переделываю проект на VC++ .NET. Переделка направлена на обеспечение работопособности программы БЕЗ использования CRT. Переписал используемые ф-ции, чтобы не затрагивать CRT. В итоге, вот примерно что линковщик пишет:
    Код (Text):
    1.  
    2. msg.obj : error LNK2001: unresolved external symbol ___security_cookie
    3. main.obj : error LNK2019: unresolved external symbol ___security_cookie referenced in function _main
    4. msg.obj : error LNK2001: unresolved external symbol @__security_check_cookie@4
    5. LINK : error LNK2001: unresolved external symbol _mainCRTStartup
    6. Release/w_cons.exe : fatal error LNK1120: 3 unresolved externals
    7.  




    Вопрос собснно в том, как это дело пофиксить?! Где взять соответствующие обж файлы?.



    Заранее благодарен.
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    LINK : error LNK2001: unresolved external symbol _mainCRTStartup



    укажи новую точку входа линкеру, отличную от стандартного main

    #pragma comment(linker, "/entry:new_main")

    и соответственно переименуй свою main в new_main



    symbol ___security_cookie

    Это вроде устраняется удалением некоторых ключей из командной строки линкера, какие - не помню :dntknw:
     
  3. ZeroMemory

    ZeroMemory New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    79
    cresta, сенкс, новую точку входа назначил... осталось только отключить секурити_куки... буду искать опцию... если кто знает - отпишите здесь плз.
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Посмотри, установлено для компилятора

    /GS

    (enable security checks)



    Я пользуюсь такими ключами, оформленными в батник:


    Код (Text):
    1. cd C:\vct\MyProg
    2. call vcvars32.bat
    3. if exist MyProg.exe del MyProg.exe
    4. if not exist MyProg.rc goto over1
    5.  
    6. rc.exe /v MyProg.rc
    7. :over1
    8.  
    9. cl  /Ox MyProg.cpp
    10.  
    11. link MyProg.obj MyProg.res /subsystem:windows
    12.  
    13. pause
    14. if exist MyProg.exe call MyProg.exe




    Попробуй таким способом
     
  5. ZeroMemory

    ZeroMemory New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    79
    Всем спасибо! Нашел. /GS
     
  6. ZeroMemory

    ZeroMemory New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    79
    сенкс cresta. не заметил, что ты нашел раньше меня ;)