【问题标题】:How do I link to external DLL so that it will be recognized by Windows 8.1?如何链接到外部 DLL 以使其被 Windows 8.1 识别?
【发布时间】:2017-09-21 02:13:23
【问题描述】:

我使用 C# 和 Visual Studio 2010 开发了 WindowsForm 应用程序,并且我有外部 DLL(使用 VC++ 编写)。当我将它部署到 Windows 7 时,一切正常。但是,在 Windows 8.1 上,它安装并运行良好,直到程序需要访问 DLL 中的库函数。它抱怨找不到 DLL(即使该文件与可执行文件位于同一位置)。

这仅发生在 Windows 8.1 中(可能也发生在 Windows 8 中)。

我是否错误地链接了 DLL?

【问题讨论】:

  • 最可能的原因:Windows 8.1 机器上未安装 Visual Studio 2010 Microsoft C 运行时。或者也许是 C++ 类库。与操作系统版本无关,除非可能是间接的。您可以使用 Process Monitor 诊断此类问题,查找文件未找到错误。
  • 非常感谢!我明天试试看。
  • 非常感谢。我发现(来自 ProcessMonitor)该 DLL 实际上是一个调试版本,因为它试图访问 C 运行时 dll 的调试版本。现在一切都解决了。非常感谢!

标签: c# visual-studio-2010 dll windows-8.1


【解决方案1】:

假设您的 DLL 是 Windows 本机 DLL,则发生以下两种情况之一:

  1. Windows 无法找到 DLL
  2. DLL 具有计算机上不可用的其他依赖项

要检查,请尝试更改 PATH 环境变量以包含您的 DLL 所在的文件夹。如果程序运行,则定位 DLL 有问题。

如果这不起作用,那么您需要进行一些更深入的调查以找出实际发生的情况。

有一个指南here 向您展示了如何使用Process Monitor 确定您的程序发生了什么,以找出实际无法加载的内容。这可能不是您的 C++ DLL,它可能是它的众多依赖项之一。

【讨论】:

    【解决方案2】:

    答案是上面 Harry Johnston 的评论:

    最可能的原因:Windows 8.1 计算机上未安装 Visual Studio 2010 Microsoft C 运行时。或者也许是 C++ 类库。与操作系统版本无关,除非可能是间接的。您可以使用 Process Monitor 诊断此类问题,查找文件未找到错误。

    【讨论】:

      猜你喜欢
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      相关资源
      最近更新 更多