У меня есть приложение, загружающее библиотеку, содержащую функцию обратного вызова для глобальной ловушки GetMessage.Я получаю процедуру и передаю ее в SetWindowsHookEx, которая будет установлена для всех запущенных потоков.
Проблема в том, что я хочу, чтобы функция DLL при определенных обстоятельствах, таких как нажатие клавиши, сообщала исходному приложению о завершении работывсе приложения.Единственный способ, о котором я могу подумать, - это создать окно в приложении и заставить DLL вызывать SendMessage (HWND_BROADCAST) для отправки пользовательского сообщения, которое приложение распознает для выхода.Но я хочу убедиться, что это лучший способ сделать это?
Также возникает другая проблема.Допустим, я хочу, чтобы DLL выполняла однократную инициализацию, такую как открытие файла.Если я делаю это в DllMain, то он, кажется, делает это несколько раз, потому что он загружается несколько раз.Это исправление для этого?Спасибо.