Alex Levdan wrote: > > Добрый День > Собираю проект, отключил стандартные run-time библиотеки, все было нормально, но при линковщик не может разрешить указанные функции > > error LNK2001: unresolved external symbol __except_handler3 > error LNK2001: unresolved external symbol __except_list > > Все началось с того, что стал использовать SEH (__try, __except) > почему тянутся CRT библиотеки, может в настройках проекта надо что-то включить ? > > Может их перегрузить чем можно или откуда взять ?
Чего не знаю, того не знаю, но вот среди файлов каталога
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Привет!
PD>Alex Levdan wrote: >> >> Добрый День >> Собираю проект, отключил стандартные run-time библиотеки, все было нормально, но при линковщик не может разрешить указанные функции >> >> error LNK2001: unresolved external symbol __except_handler3 >> error LNK2001: unresolved external symbol __except_list >> >> Все началось с того, что стал использовать SEH (__try, __except) >> почему тянутся CRT библиотеки, может в настройках проекта надо что-то включить ? >> >> Может их перегрузить чем можно или откуда взять ?
PD>Чего не знаю, того не знаю, но вот среди файлов каталога
PD>"D:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\Dll_lib\"
PD>есть SEHSUPP.OBJ
PD>То, что DLL тебе не нужна — понимаю. Но судя по всему, с DLL или без, PD>CRT содержит что-то по поддержке SEH.
PD>-- PD>With best regards, PD> Pavel Dvorkin
Супер, я вообще то считал, что SEH в нативном виде не требует поддержки CRT (и как следствие стартового кода), выходит, что нет.
Re[3]: unresolved external symbol __except_list ??
Hello, Alex!
You wrote on Mon, 16 Aug 2004 11:13:42 GMT:
AL> "Анатомия C Run-Time, или Как сделать программу немного меньшего AL> размера" (http://www.rsdn.ru/article/cpp/crt.xml
)
AL> там в главе "Используйте SEH вместо C++ Exceptions" написано, что SEH AL> не требует CRT инициализации ...
А использование __except_handler3 никакой инициализации и не требует. Линкуй
себе статически с CRT, будет нормально работать с "рукописной" точкой входа.
With best regards, Sergey.
Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[5]: unresolved external symbol __except_list ??
Alex Levdan wrote: > > Однако все равно престранно > накопал статью > > "Анатомия C Run-Time, или Как сделать программу немного меньшего размера" (http://www.rsdn.ru/article/cpp/crt.xml
) > > там в главе "Используйте SEH вместо C++ Exceptions" написано, что SEH не требует CRT инициализации ...
Посмотрел. Вообще-то действительно странно, потому что SEH реализуется
Windows, а не CRT. А исходников этих except_handler3 и except_list увы,
нет. Может, стоит автора статьи спросить?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Посмотрел. Вообще-то действительно странно, потому что SEH реализуется PD>Windows, а не CRT. А исходников этих except_handler3 и except_list увы, PD>нет.
Файл CRT\SRC\Intel\dllsupp.asm (почти полностью):
.xlist
include cruntime.inc
.list
; offset, with respect to FS, of pointer to currently active exception handler.
; referenced by compiler generated code for SEH and by _setjmp().
public _except_list
_except_list equ 0
public _fltused
_fltused equ 9876h
public _ldused
_ldused equ 9876h
end
А exept_handler3 и правда упоминается только в obj- и def-файлах. Там же, кстати, есть какой-то exept_handler2.
Делай что должно, и будь что будет
Re[7]: unresolved external symbol __except_list ??
Здравствуйте, SergH, Вы писали:
SH>А exept_handler3 и правда упоминается только в obj- и def-файлах. Там же, кстати, есть какой-то exept_handler2.
Этот except_handler3 переписывать самому — нудновато будет, хотя функция и небольшая. Можно ведь просто прилинковывать нужные obj-и и не мучиться, это от силы полкило прибавит к программе.