Как подавить ошибку Entry Point Not Found при загрузке пакета Delphi? - PullRequest
4 голосов
/ 28 июля 2010

Я поддерживаю программу, написанную на Delphi 6. Она динамически загружает некоторые файлы пакета bpl, используя SysUtils.LoadPackage.Часто я изменяю что-то в программе, что приводит к сбою загрузки пакета.Когда это происходит, появляется окно сообщения, а затем выдается исключение.Окно сообщения и исключение являются отдельными.

Вот пример окна сообщения:

---------------------------
Connect Manager: ConnectManager.exe - Entry Point Not Found
---------------------------
The procedure entry point @Connectmanagerplugin@TConnectManagerPluginClassList@UnRegister$qqrp17System@TMetaClass could not be located in the dynamic link library ConnectManagerPack.bpl. 
---------------------------
OK   
---------------------------

И вот исключение:

---------------------------
Debugger Exception Notification
---------------------------
Project ConnectManager.exe raised exception class EPackageError with message 'Can't load package Projects.bpl.
The specified procedure could not be found'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

Я не вижукак остановить появление окна сообщения.Любые идеи принимаются с благодарностью.

1 Ответ

3 голосов
/ 28 июля 2010

Решено!

Я создал копию SysUtils.LoadPackage в своем приложении и отредактировал эту копию, чтобы передать второй параметр SafeLoadLibrary.

Так что вызов SafeLoadLibrary теперь выглядит так:

Result := SafeLoadLibrary(Name, SEM_FAILCRITICALERRORS);

Это помогло: http://msdn.microsoft.com/en-us/library/ms680621%28VS.85%29.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...