Size: a a a

IT KPI C/C++ ХВ (не UB)

2021 July 02

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
в окне parallel stacks можно выбрать другой поток и посмотреть что там
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
типа вот так перед вызовом Wait
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
там вообще нету того потока?
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
судя по всему когда sleep на потоке, то Wait не ждёт, но странно...
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
не, так не интересно
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
зеленый лест на open source
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
у вас лагает телеграм desktop при попытке прикрепить файл?
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Это твой hdd
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
Ладно, если кому-то интересно, то проблема там следующая...

"The only case when both do (nearly) the same thing is in the main() function, as a return from main performs an exit()."

Получается после завершения мейна вызывается DLL_PROCESS_DETACH и на тот момент потоков уже не существует из-за того, что exit() вызывает ExitProcess() API - https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-exitprocess

"As documented in ExitProcess documentation, it terminates all threads and then calls DllMain() with DLL_PROCESS_DETACH."
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
А если не делать explicit загрузку DLL в программу, то когда она происходит?
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Ты имеешь ввиду LoadLibrary?
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
+
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
До входа в ентрипоинт твоей программы
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
Хм, а если я буду вызывать явно, то где я это должен делать?
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Смотря что пишешь
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
я же не могу это сделать до входа в entry-point - получается она уже будет загружена?
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Если твоё приложение жестко завязано на каких-то библиотеках, типа Qt, то не имеет смысла их загружать руками по ходу выполнения. Гораздо легче отдать это загручику из системы и он порезолвит все необходимые импорты из твоего экзешника
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
ну типа завязано, да, но если мне нужно проинициализировать эту либу после загрузки?
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Что значит проинициализировать? Вызвать процедуру какую-то?
источник

 P

 ‌‌Gleb Pilipets... in IT KPI C/C++ ХВ (не UB)
+
источник