第三方DLL丢失了,我应该等待什么?

问题描述:

我正在使用旧版C++项目并且缺少第三方dll。我被告知该DLL将在两周内上市。我需要执行的工作是纯UI。我真的不需要这个DLL。但是,该应用程序不会运行没有DLL。我是否应该注释掉dll所调用的所有地方或创建占位符DLL,无论哪种方式都有大量的API需要覆盖?没有人有更好的主意吗?第三方DLL丢失了,我应该等待什么?

我会创建一个stub DLL,它不会执行任何操作(或只需要执行任何操作)。然后,当你得到真正的一个,把它放在你的存根上,你就完成了。

如果您需要创建一个zillion函数,您可能可以使用perl或其他一些脚本语言来帮助将您的链接器错误转换为包含您需要的函数原型的文件。

你不会走得太远。有了这么多的电话,写封包是时间的一个不好的用法,除非你在*里或什么的。

您不能从正在运行的安装中获取DLL的副本?或者这是一个授权问题?

+0

*......真的吗? – Aardvark 2009-02-10 14:23:20

编写单元测试。否则,听起来像是两周的拇指旋转。

我,我会尽力在这里复制.DLL许可和其他问题。除此之外找到另一个项目,我认为...

如果您有权访问EXE的源代码(似乎是这样),并且您正在运行任何最新的Visual Studio(6或更高版本),一个简单的解决方案用/ DelayLoad重建。这意味着链接器将设置EXE来调用LoadLibrary并在第一次调用时解析导入。这意味着如果你实际上没有调用这个DLL,它永远不会被加载,并且通过扩展名不会丢失。

这意味着您不必创建任何存根DLL;这是一个5分钟的变化。

我通常通过调用LoadLibraryGetProcAddress来动态加载不重要的DLL,这样我的应用程序就可以在没有它们的情况下运行。应用程序可以检查DLL是否被加载,如果没有,它不提供DLL提供的功能。我用拼写检查器,条形码库等等可能是需要考虑的事情。