2010-04-02 3 views
3

J'ai écrit l'uploader FTP multi-thread sur C# .NET en utilisant libcurl.NET.libcurl .NET ne veut pas travailler sur Win64

Tout fonctionne très bien sur ma machine, mais quand je donne une application (exe + libcurl.dll + 2 libcurl C# DLL de liaison) à mon ami qui exécute Win64, l'application se bloque.

Après avoir ajouté le receveur d'exception à toute la fonction principale(), je suis en mesure d'obtenir lisible message d'erreur: « Une tentative a été faite pour charger un programme avec un format incorrect (Exception de HRESULT = 0x8007000B) »

Après googling pendant un certain temps, j'ai trouvé un conseil pour activer le code non géré dans mes paramètres de projet. J'ai recompilé mon application et LibCurlNet.dll avec cet ensemble d'indicateurs, mais cela n'a pas aidé.

Qu'est-ce qui peut causer un tel problème?

+1

Dans votre projet .exe: Projet + Propriétés, onglet Générer, Platform Target = x86. –

Répondre

3

La bibliothèque libcurl.NET étant une bibliothèque 32 bits, elle ne peut pas être utilisée par une application 64 bits. Vous devez recompiler votre application pour cibler la plate-forme x86. Cela le fera fonctionner comme une application 32 bits sous WOW64 sur les systèmes d'exploitation 64 bits.

+0

Merci, a travaillé comme un charme. Mais existe-t-il une version x64 de libcurl pour Windows? Et si ce n'est pas le cas, existe-t-il une alternative C# native? – mephisto123

+0

@Dmitry: La seule version distribuée (http://sourceforge.net/projects/libcurl-net/) est 32bit. Vous pouvez toujours compiler votre propre version 64 bits, car libcurl (pas .NET) prend en charge 64bit. Cela étant dit, il n'y a souvent aucune raison de ne pas cibler x86 dans une situation comme celle-ci. Sauf si vous avez besoin d'utiliser> 2 Go de RAM, laissez-le x86, et ça devrait aller. –

Questions connexes