我在Delphi 2010应用程序中加载了Delphi 2010 DLL。它在大多数情况下都能正常工作。但是有一些异常从DLL中逃脱(即使是那些由try..except
块处理的异常)并且我的应用程序崩溃而没有错误消息,根本没有任何信息。我所说的例外就像AV,不像开发人员提出的例外。我试过用SafeLoadLibrary
加载DLL而没有运气。我也有app和DLL源代码。我没有发布DLL或应用程序源代码,因为我不能,他们受版权保护(我真的希望我能)。
我能做些什么来避免内部DLL异常导致我的应用程序崩溃?
修改
我无法允许DLL引发异常。它可能发生,并非所有代码都是完美的。 dll可能不可避免地引发异常,但它不应该崩溃主应用程序。例如,想象一下,您使用的是没有源代码的第三方DLL。当这个dll由于某种原因因主要应用程序被杀而崩溃时,这不是一件好事。它必须有办法不允许这种情况发生。
答案 0 :(得分:1)
你要求的是不可能的。 DLL与执行进程共享相同的内存空间。因此,要么做任何事情都会导致应用程序崩溃。
你确实有正确的想法,因为你的DLL需要尽其所能。它需要在申请流程领域成为一个好公民。
你可以做些好事。