SetErrorMode не имеет никакого эффекта? - PullRequest
2 голосов
/ 08 июля 2011

звоню

"SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);"

перед загрузкой DLL. Тем не менее, появляется сообщение Windows

"Это приложение не удалось запустить потому что blabla.dll не был найден ... ".

Почему это происходит? Я думал, что это то, что SetErrorMode должен был предотвратить? Спасибо!

1 Ответ

3 голосов
/ 08 июля 2011

Вызов SetErrorMode, вероятно, никогда не выполняется - если вы статически ссылаетесь на DLL, он будет загружен вместе с исполняемым файлом.Сообщение, которое вы видите, выдается операционной системой, а не вашим кодом.Если вы хотите контролировать загрузку DLL, вы должны загрузить ее, используя LoadLibrary - но затем использовать экспортированные функции немного сложнее.

Вы можете создать свой собственный загрузчик (другой исполняемый файл), который обеспечит доступность всех библиотек DLL, а затем запустит основной исполняемый файл.Но это может быть излишним ...

...