Самопальная CRT для Visual Studio 2010

Тема в разделе "LANGS.C", создана пользователем Rel, 27 май 2010.

  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    1) сборка с tlibc такого кода:
    Код (Text):
    1. Class1* pClass1 = new Class1();
    ответ линкера:
    Код (Text):
    1. 1>main.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler3
    2. 1>main.obj : error LNK2001: unresolved external symbol __EH_prolog
    3. 1>LINK : error LNK2001: unresolved external symbol __load_config_used
    2) сборка такого кода:
    Код (Text):
    1. Class1* pClass1 = (Class1*)HeapAlloc(GetProcessHeap(), 0, sizeof(Class1));
    в результате все ок... класс создается, методы корректно вызываются, никаких проблем ни с линковкой, ни с исполнением...
     
  2. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Мой пример выше нормально собирается и 2010й, и я уверен ничего не изменится от переноса определения new в другую единицу трансляции. Твой же пример очевидно не полон, как минимум нет определения класса, и должно быть использует еще и try catch, или спецификатор throw и непонятно какие ключи компиляции? С++ исключения с этими рантаймами использовать вряд ли получится, нужно собирать без /EH или /GX
     
  3. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Кстати CRT расшифровывается как C runtime, а new из С++, поэтому не понятно что нужно.