C# libcurl.NET不想在Win64上工作

C# libcurl.NET不想在Win64上工作,c#,libcurl,win64,C#,Libcurl,Win64,我使用libcurl.NET在C#NET上编写了多线程FTP上传程序 在我的机器上一切正常,但当我把应用程序(exe+libcurl.dll+2 libcurl C#binding dll)交给运行Win64的朋友时,应用程序崩溃了 在将异常捕捉器添加到整个Main()函数后,我能够获得可读的错误消息:“试图加载格式不正确的程序(来自HRESULT=0x8007000b的异常)” 在谷歌搜索了一段时间后,我发现了一个建议,可以在我的项目设置中启用非托管代码。我已使用此标志集重新编译了我的应用程序

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

在我的机器上一切正常,但当我把应用程序(exe+libcurl.dll+2 libcurl C#binding dll)交给运行Win64的朋友时,应用程序崩溃了

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

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


什么会导致这样的问题?

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

在您的.exe项目上:project+Properties,Build选项卡,Platform Target=x86。谢谢,工作非常出色。但是有没有适用于windows的x64版本的libcurl?如果没有,是否有任何本机C#替代方案?@Dmitry:唯一的分布式版本()是32位。不过,您可以编译自己的64位版本,因为libcurl(不是.NET)支持64位。尽管如此,在这种情况下,通常没有理由不以x86为目标。除非您需要使用>2GB的RAM,否则只需将其保留为x86即可。