在 Visual Studio 2008 和 Windows XP 中使用 libxml2

Posted

技术标签:

【中文标题】在 Visual Studio 2008 和 Windows XP 中使用 libxml2【英文标题】:Using libxml2 in Visual Studio 2008 and Windows XP 【发布时间】:2009-08-01 20:54:54 【问题描述】:

在 Visual Studio 2008 (VS2008-SP1) 和 Windows XP 下运行使用 GNOME 的 libxml2 的应用程序时遇到一个奇怪的问题。

我有两个 C++ 项目:

项目 A(图书馆) 项目 B(依赖于项目 A 的应用程序)

两者都在一个 VS 解决方案下。

Project A 使用 libxml2.lib 进行静态编译。我在 AB 两个项目的库中添加了依赖项。

解决方案完美编译。唯一的问题是,当我运行它时,我在 Windows XP 下收到以下错误:

“此应用程序无法启动,因为找不到 libxml2.dll。重新安装应用程序可能会解决此问题”。

我已经在两个不同的 Windows XP SP3 安装中尝试过这个。最奇怪的是它在 Windows Vista 上运行得非常好,而且我认为它不应该寻找 DLL,因为它是静态编译的。对吧?

有什么想法吗?

【问题讨论】:

【参考方案1】:

考虑到 libxml2 是基于 Gnome 的项目,我猜它不会默认出现在任何 Windows 安装中。

我打赌它在 Vista 上运行的原因是您在 Vista 上安装了一个不同的程序,它恰好包含该库。因此,它在那里工作是偶然的,而不是设计的。

我同意里奇的观点。解决这个问题的最好方法是退出 DependencyWalker 并查看 XP 而不是 Vista 上哪些依赖项失败了。这将导致您遇到问题。

【讨论】:

您的猜测是 100% 准确的。谢谢。【参考方案2】:

假设您已经检查了明显的内容(XP 机器上是否存在 libxml2.dll?),您可能会发现 Dependency Walker 很有帮助 - 它会提供比 Windows 自己提供的更详细的错误和日志记录。

可能是缺少 libxml2 本身的依赖项 - Dependency Walker 会告诉您该依赖项是什么。

【讨论】:

我应该提到我是静态编译的。在那种情况下,我认为我不需要 DLL。我将更新我的问题以反映它。伟大的实用程序 Dependency Walker:谢谢!

以上是关于在 Visual Studio 2008 和 Windows XP 中使用 libxml2的主要内容,如果未能解决你的问题,请参考以下文章

使用部分类和设计器文件将 Visual Studio 2003 表单转换为 Visual Studio 2005/2008 表单

从 Visual Studio 2008 升级到 Visual Studio 2010 速成版

在visual studio2008上用c#写的程序应该用啥软件来画类图

如何在 Visual Studio 2010 中使用 Visual Studio 2008 创建的 DLL?

如何在 Visual Studio 2008 和 C++ 中显示希腊字符? [复制]

如何在 Visual Studio 2008 中打开使用 Visual Studio 2005 创建的 rdl?