Есть много вещей, делать которые в DllMain, - это плохая идея. Например: динамическая загрузка других библиотек, создание процессов и потоков, инициализация COM и многое другое.
Подробнее по ссылке на MSDN: https://docs.microsoft.com/en-us/windows/win32/dll...
kyurem_bog, насколько я помню, там можно задать отдельную кодировку для соединений/подключнний к базе и отдельную для хранения (для базы или таблицы, или колонки). Если в исходниках вашей программы поменять кодировку нет возможности, то это, наверное, лучший вариант.
В вашем случае подключение должно быть или в win1251 или cp866
Только если у вас не выключен UAC. Если UAC включен, то запустить программу от имени администратора можно только если ваша программа, которая ее запускает, уже запущена от имени администратора. Можно еще через планировщик заданий, но для создания такого задания, скорее всего, так же потребуются права администратора.
Александр Скуснов, Windows по завершении работы посылает все 2 сообщения через очередь. Не помню как конкретно они называются. Первое, типа "сейчас будем выходить" ответом на него можно попросить систему подождать, если идет какая-то критическая операция. И второе, типа " все, выходим". Можно ловить эти сообщения и в OnCloseQuery отвечать True. Тогда все будет корректно закрываться.
Попробуйте запустить
Profwiz.exe /?