170 похожих чатов

А знает кто, исключения же это эксклюзивная структура для модуля? Тоесть

у тебя есть приложение и к нему подключается либа, если либа вкинет исключение, сможет ли приложение его поймать?

28 ответов

31 просмотр

Как подключается?

Что значит "к приложению подключается либа" ?

Что такое модуль? Либа определяет исключения, которые она кидает, и конечно их можно ловить из основного приложения

Ридиска-Редисковна Автор вопроса
ORTO
Как подключается?

Я не знаю как на линуксе, но вот в шинде ты вызвал LoadLibraryA, нашёл функцию там, вызвал её,а там произошло исключение

Ридиска-Редисковна Автор вопроса
ORTO
> винапи Гугли SEH

Я знаю что это, просто интересно за крестовые механизмы

Вопрос не ясен

Ридиска Редисковна
Я не знаю как на линуксе, но вот в шинде ты вызвал...

Я так понимаю эта функция позволяет подключить либу в рантайме, все-таки более частый и классический способ - подключение в компайлтайме, когда у тебя появлется новый хедер.h со всеми определениями (в т.ч. исключениями), и отдельно либа линкуется в линковщике по правилам, описанным в твоей билд-системе

Ридиска-Редисковна Автор вопроса
Ilya Zviagin
Вопрос не ясен

Я буквально как проснулся сразу это написал, щаща

Если библиотека кидает исключение, приложение может его поймать

Ридиска-Редисковна Автор вопроса
Vladimir
Я так понимаю эта функция позволяет подключить либ...

Ну в моём случае там динамическая херня. Грубо говоря(это не так) Есть игра и она грузит моды через динамик либы Собственное если в лице вбросится исключение, упадёт ли она, хзхз

Ilya Zviagin
Если библиотека кидает исключение, приложение може...

Я так понимаю что проблема в том, что через LoadLibraryA ты не знаешь что ловить

Ридиска-Редисковна Автор вопроса

Вроде можно же написать что-то типо catch(...), но как такое работать будет. Хах Крч надо самому проверять

Vladimir
Я так понимаю что проблема в том, что через LoadLi...

И это не так, что ты не знаешь что ловить . Можешь и знать

Ilya Zviagin
Лови всё...

Звучит как говно какое-то, но как правильно сделать динамическую прогрузку кода из игры я не знаю, слишком много зависит от архитектуры этой игры, что за игры, ты ли ее делаешь или копаешься в готовом, и тп

Ридиска Редисковна
Ну в моём случае там динамическая херня. Грубо гов...

Самое правильно - исключения и другие ошибки сквозь границу либы не пропускать. Если либа кривая, то отлавливай от нее всё, до всех уровней глубины.

Ilya Zviagin
И это не так, что ты не знаешь что ловить . Можешь...

Да, можешь и знать, но автору нужно уже самому искать как эту инфу находить

Vladimir
Звучит как говно какое-то, но как правильно сделат...

Так же как статическую, с т.з. исключений ничего не меняется

Ilya Zviagin
Так же как статическую, с т.з. исключений ничего н...

Но в динамике функция просто грузит в адресное пространство код либы, как оттуда вычленять определения - я лично хз

Ilya Zviagin
Это расхожее заблуждение

Может и заблуждение, не заблуждающиеся потом месяцами ловят растрелы своей памяти из либ и всякие другие приколы.

Vladimir
Но в динамике функция просто грузит в адресное про...

Никак. Но это может быть написано в документации. Собственно, как и при обычной линковке

Ридиска Редисковна
Вроде можно же написать что-то типо catch(...), но...

Пусть авторы этих модов к этой игре дадут тебе инструкцию как этим пользоваться

Ilya Zviagin
Никак. Но это может быть написано в документации. ...

Если память не изменяет, то часто в обрамлении экпортируемого всё это есть и из него можно получить нужное.

Ридиска-Редисковна Автор вопроса
Ilya Zviagin
Никак. Но это может быть написано в документации. ...

Да, у меня для такого стандарты есть. Мол хочешь нормальную инфу, кидается опр исключения с опр структурой. А всё остальное в помойку

Ридиска Редисковна
Да, у меня для такого стандарты есть. Мол хочешь н...

Ну значит кури свои стандарты спрашивай коллег. Но в целом подход этот немного пованивает

Ридиска-Редисковна Автор вопроса
Vladimir
Ну значит кури свои стандарты спрашивай коллег. Но...

Я раньше микросхемы проектировал, так как-то легче думать. Напилил стандартов под все случаи, а дальше только через них и дёргаешь всё.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта