Прежде всего, немного предыстории:
Мое программное обеспечение, написанное на VC ++, использует некоторые большие сторонние библиотеки DLL, которые загружаются вместе с моим приложением.Эти библиотеки часто вызывают исключения с плавающей точкой во время их нормального хода работы, но они не сигнализируются как аппаратные исключения из-за конфигурации по умолчанию управляющего слова с плавающей точкой, чтобы маскировать эти исключения, и, следовательно, программа не падает из-за них.
Теперь проблема в том, что когда некоторые сторонние программы, такие как Zeallsoft Super Screen Capture , внедряют свои собственные библиотеки DLL, написанные на Borland C ++, они устанавливают слово управления FP для включения исключений с плавающей точкой и мое приложение.из-за этого происходит сбой.
Хотя основная проблема может быть связана со сторонней библиотекой и сторонним программным обеспечением, которое внедряет свои собственные библиотеки DLL, я все же хочу защитить свое программное обеспечение от сбоя из-за такой проблемы.
Решение, которое я могу придумать, заключается в том, чтобы получить уведомление о загрузке Dll, происходящей внутри моего процесса, и убедиться, что управляющее слово FP сбрасывается до значения по умолчанию после загрузки dll.
ИтакЯ смотрюg для простых и эффективных способов достижения этого.Есть ли какой-нибудь способ получить уведомление о загрузке Dll в моем процессе?Есть ли другой способ достичь того, что я хочу сделать?Единственное, в чем я хочу быть осторожным, это то, что метод должен работать на Win 2k и WinXP и выше, и, во-вторых, используемый метод не должен иметь такой природы, которая потенциально может вызвать эвристику вредоносных программ антивирусных / шпионских сканеров.