改进了dll丢失错误信息

Improving the dll missing error message

本文关键字:错误 信息 dll      更新时间:2023-10-16

我有一个用QT编写的程序,工作得很好。然而,它间接依赖于dssd .dll,因为程序加载的dll使用bonjour。如果bonjour没有安装在运行该程序的机器上,它将显示

程序无法启动,因为dssd .dll在电脑。尝试重新安装程序来解决这个问题。

我没有通过LoadLibrary或其他方式加载此dll。我将二进制文件与存根链接在一起,所以它会在int main之前自动加载。

显然重新安装程序并不能解决问题。对我来说,它清楚地说我需要安装bonjour,但对大多数用户来说,这是非常神秘的。

我宁愿这个错误消息是一些更有信息的东西,如"Bonjour需要安装这个应用程序正常工作,去[insert-ur-here]下载它。"

是否有一种方法可以检测何时dll无法加载,并给出更好的错误信息?

将其设置为延迟加载,然后尽可能早地(在您导致加载发生之前),尝试自己加载它(使用LoadLibrary)并报告问题。

http://msdn.microsoft.com/en-us/library/151kt790.aspx