【发布时间】:2014-07-08 14:03:31
【问题描述】:
我正在使用 Visual Studio 2010,我正在尝试创建一个 .dll。我的 .dll 使用外部库 .lib。此库还包含其他库 (.lib) 的集合。
所以:我的 main.lib 是一个用于收集库的容器 - 因此它大约有 300mb 大。
现在,当我在我的 dll 中使用 lib 时,它的链接很好,并且可以在我的电脑上正常工作。但是当我将编译后的程序部署到另一台计算机时,它无法加载.lib。它根本找不到它,即使我把它放到.dll 的目录中。
现在我的问题是:有没有办法可以将 .lib 的所有功能存储在 .dll 中?这样 .dll 文件大约 300mb 大,但我不需要再部署 .lib 了吗?
更新:
非常感谢大家的回答。为了描述我的问题,我想向您展示我的程序的输出:
未处理的异常:System.Runtime.InteropServices.SEHException:外部组件已引发异常。
我花了很多时间使用谷歌来解决这个错误。我发现这是缺少文件的问题(我的“外部组件”之一(.dll))找不到类的定义等等,或者访问权限有问题。
我尽我所能解决这个问题,一次尝试我就成功了,可以使用这个程序。我知道这是因为我将 main.lib 放入了正确的文件夹中,所以我的程序可以找到它。但是现在我不知道把这个 main.lib 放在哪里。所以:我的程序又坏了,现在我想修复它......我希望这个描述有所帮助。很难描述,因为我不知道到底是什么问题……
更新 2:
感谢您的帮助,我解决了我的问题。起初我误解了 .dll 和 .lib 的工作原理。如果其他人有此问题并将被重定向到此帖子,那么@D Stanley 的回答会有所帮助。
感谢@David Heffernan,我发现它并没有丢失任何 .lib 或其他导致此错误的东西。这是我的本机 C++ 代码(在 .lib 中)中的一个问题。所以我修复了这个问题(导致异常),现在一切正常。
感谢大家的帮助。
【问题讨论】:
-
您对问题的诊断不正确。我们首先需要正确识别问题,而不是询问您提出的解决方案。在运行时,不使用 .lib 文件。所以运行程序的机器上没有 .lib 文件不是问题。您需要备份并提供问题的更多详细信息。
-
大卫您好,非常感谢您的回答!我在上一个问题中添加了更新。此更新是否有助于了解我的问题?
-
正如我所说,您误诊了问题。所有关于 lib 文件的讨论都与问题无关。我不认为这个问题可以保存。您需要有关错误的帮助。问一个新的问题。有细节。很多细节。
-
但我认为这个错误与我的问题有关。它告诉我,当我的程序尝试访问我的 main.lib 的代码时出现错误。所以我认为它找不到这部分的定义/声明。它在 .lib (和给定的 .h 文件)中。当我询问有关该错误的新问题时。我应该提供哪些细节?我不知道我应该提供哪些细节。我想我不能提供更多...:/
-
不,它与任何 .lib 文件无关。但是你似乎不想听我的建议,所以我想这意味着我无法帮助你。祝你好运解决这个问题。很抱歉我帮不了你。