vid*_*ige 5 c++ dll qt bonjour
我有一个用QT编写的程序,运行得很好.但是它对dnssd.dll有间接依赖,因为程序加载的dll使用了bonjour.如果运行该程序的机器上没有安装bonjour,它会说
程序无法启动,因为您的计算机缺少dnssd.dll.尝试重新安装该程序以解决问题.
我没有通过LoadLibrary
或其他方式加载此DLL .我将二进制文件与存根链接起来,以便之前自动加载int main
.
显然重新安装程序并不能解决问题.对我而言,它清楚地说我需要安装bonjour,但对于大多数用户来说,这是极其神秘的.
我宁愿将此错误消息更具信息性,例如"需要为此应用程序安装Bonjour才能正常工作,请转到[insert-url-here]下载它."
有没有办法检测dll何时无法加载loke并提供更好的错误消息?
将其设置为延迟加载,然后尽可能早地(在导致加载发生之前),尝试自己加载它(使用LoadLibrary)并报告问题.
http://msdn.microsoft.com/en-us/library/151kt790.aspx