Size: a a a

2020 August 16

🦊

🦊fox.cpp in C++ Together 2.0
Все
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Единственная проблема заключается в том, что либы надо грузить в правильном порядке
Почему?
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
Почему?
Потому что до загрузки net.dll никаких сокетов не будет и при загрузке shit.dll ты получишь ошибку линкера
источник

RM

Roy Mustang in C++ Together 2.0
Либы сначала загружаются, потом проверяются на версии (совместимость) и затем уже вызовы виртуальных методов идут. К вызову AppInit все эти dll уже загружены в память, а их объекты созданы
источник

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
Потому что до загрузки net.dll никаких сокетов не будет и при загрузке shit.dll ты получишь ошибку линкера
ЕСЛИ ТОЛЬКО
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Потому что до загрузки net.dll никаких сокетов не будет и при загрузке shit.dll ты получишь ошибку линкера
Сокеты инициализируешь ты сам, через вызовы методов
источник

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
ЕСЛИ ТОЛЬКО
линкер не поддерживает ленивое разрешение символов, glibc умеет, насчёт винды не знаю - вопрос к @AlexFails
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
Сокеты инициализируешь ты сам, через вызовы методов
Ты меня не понял
источник

RM

Roy Mustang in C++ Together 2.0
В AppInit берутся указатели друг друга, в AppConfig грузятся конфиги, в AppStart запускаются сокеты, хуекиты, потом идет бесконечный цикл AppUpdate
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
линкер не поддерживает ленивое разрешение символов, glibc умеет, насчёт винды не знаю - вопрос к @AlexFails
Что такое ленивое разрешение символов?
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
Что такое ленивое разрешение символов?
Это линкер вместо символа кладет заглушку и идёт искать символ только когда его в первый раз трогают
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Это линкер вместо символа кладет заглушку и идёт искать символ только когда его в первый раз трогают
Что такое символ? Функция в .dll, которая вызывается, как точка входа?
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
Что такое символ? Функция в .dll, которая вызывается, как точка входа?
Да
источник

🦊

🦊fox.cpp in C++ Together 2.0
Либо переменная, либо ещё что
источник

🦊

🦊fox.cpp in C++ Together 2.0
Что-то, что в длл
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Это линкер вместо символа кладет заглушку и идёт искать символ только когда его в первый раз трогают
Ну так его трогают сразу
источник

RM

Roy Mustang in C++ Together 2.0
Щас покажу
источник

RM

Roy Mustang in C++ Together 2.0
источник

RM

Roy Mustang in C++ Together 2.0
Вот тут Load метод
источник

RM

Roy Mustang in C++ Together 2.0
источник