【问题标题】:Unable to load C++ DLL in C# application in Windows 7 32 bit OS无法在 Windows 7 32 位操作系统的 C# 应用程序中加载 C++ DLL
【发布时间】:2011-09-20 03:35:37
【问题描述】:

我有一个用 C++ 编写的 DLL,需要由 C# 中的应用程序使用。 设置: 操作系统:Win7 32 操作系统 C++ DLL:64 位 C# 应用程序:64

对于 C++ 项目,我将平台设置为 64 位。然后我创建了 DLL。 如果我尝试访问 C++ dll,它会失败。 收到错误“无效的 DLL”

【问题讨论】:

  • 你能写出你用来声明外部函数的代码吗?
  • "OS: Win7 32" - 您无法在 32 位操作系统上加载 64 位 DLL。
  • @Felice:我引用了 External 函数,就像另一个 c# 类库一样。以前它在 32 位 C++ dll 上运行良好。我添加了一个参考和使用程序集。我为该类创建了实例并进行了访问。现在我将 C++ 项目平台更改为 64 位,现在出现引用丢失错误。
  • @Lakshmanan 我现在才看到:看看@winSharp93 评论:)
  • @Felice 代替Load,有没有其他的参考方式?

标签: c# pinvoke 32bit-64bit


【解决方案1】:

答案正如winSharp93所说。如果 DLL 是 64 位的,则无法在 32 位操作系统上加载它。

【讨论】:

  • 代替Load,有没有其他参考方式?
  • 这是一个为 64 位平台编译的 C++ DLL:它不能在 32 位平台上工作、运行或使用。
猜你喜欢
  • 2015-08-11
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 2013-08-24
相关资源
最近更新 更多