【问题标题】:libcurl .NET does not want to work on Win64libcurl .NET 不想在 Win64 上工作
【发布时间】:2010-04-02 20:38:51
【问题描述】:

我使用 libcurl.NET 在 C#.NET 上编写了多线程 FTP 上传器。

在我的机器上一切正常,但是当我将应用程序(exe + libcurl.dll + 2 libcurl C# 绑定 DLL)提供给运行 Win64 的朋友时,应用程序崩溃了。

在向整个 Main() 函数添加异常捕获器后,我能够得到可读的错误消息:“尝试加载格式不正确的程序(HRESULT 中的异常 = 0x8007000b)”

在谷歌上搜索了一段时间后,我发现了在我的项目设置中启用非托管代码的建议。我用这个标志集重新编译了我的应用程序和 LibCurlNet.dll,但它没有帮助。

什么会导致这样的问题?

【问题讨论】:

  • 在您的 .exe 项目上:项目 + 属性,构建选项卡,平台目标 = x86。

标签: c# libcurl win64


【解决方案1】:

libcurl.NET 库是 32 位库,因此它不能被 64 位应用程序使用。您需要重新编译应用程序以针对 x86 平台。这将导致它在 64 位操作系统上作为 WOW64 下的 32 位应用程序运行。

【讨论】:

  • 谢谢你,工作就像一个魅力。但是是否有适用于 Windows 的 x64 版本的 libcurl?如果没有,是否有任何原生 C# 替代方案?
  • @Dmitry:唯一的分布式版本 (sourceforge.net/projects/libcurl-net) 是 32 位。不过,您始终可以编译自己的 64 位版本,因为 libcurl(不是 .NET)支持 64 位。话虽如此,在这种情况下,通常没有理由不针对 x86。除非您需要使用 >2GB 的 RAM,否则只要保留 x86,就可以了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多