2010-04-02 37 views
3

我使用libcurl.NET寫在C#.NET多線程FTP上傳工作。libcurl的.NET不想Win64上

一切正常,我的機器上,但是當我給應用程序(EXE + libcurl.dll + 2 libcurl的C#結合的DLL)我的朋友,誰是運行Win64中,應用程序崩潰。

添加例外捕手到整個main()函數之後,我是能夠得到可讀的錯誤消息:「試圖加載程序使用不正確的格式(從HRESULT異常= 0x8007000b)」

後在Google上搜索一段時間後,我找到了一個建議,在我的項目設置中啓用非託管代碼。我用這個標誌集重新編譯了我的應用程序和LibCurlNet.dll,但它沒有幫助。

什麼會導致這樣的問題?

+1

在您的.exe項目:項目+屬性,生成標籤,平臺目標= 86。 – 2010-04-02 20:46:18

回答

3

的libcurl.NET庫是一個32位的庫,所以它不能由一個64位應用使用。您需要重新編譯您的應用程序以定位x86平臺。這將導致它在64位操作系統上作爲WOW64下的32位應用程序運行。

+0

謝謝你,像一個魅力工作。 但是有沒有x64版本的libcurl for windows? 如果沒有,是否有任何本機C#替代它? – mephisto123 2010-04-02 20:56:46

+0

@Dmitry:唯一的分佈式版本(http://sourceforge.net/projects/libcurl-net/)是32位。不過,你可以編譯你自己的64位版本,因爲libcurl(不是.NET)支持64位。這就是說,在這種情況下,通常沒有理由不把x86作爲目標。除非你需要使用大於2GB的內存,否則就放棄x86,你應該沒問題。 – 2010-04-02 22:19:34