IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Probleme passage de 32/64 bits


Sujet :

C#

  1. #1
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut Probleme passage de 32/64 bits
    Bonjour

    je suis désolé de faire un doublon (j'ai déjà évoqué le problème dans la section F# mais la discussion n'a pas abouti car ce forum est peu fréquenté et LLB n'a malheureusement pas l'air présent actuellement).

    mon problème :
    J'ai 2 Dll d'interfaçage SWI-Prolog <-> C# qui fonctionnent très bien, une en 32 l'autre en 64 bits.
    Par contre lorsque j' utilise avec F# la dll 32 bits ça fonctionne mais avec la Dll 64 bits, l'espace des noms n'est pas reconnu.

    J'ai eu accès au code des dll.
    La seule différence entre les versions 32 et 64 est la définition de tailles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #if _PL_X64
    #warning _PL_X64 is defined
                int size_of_IOSTREAM = 232;
                int offset_to_poninter_of_IOFUNCTIONS = 104;
                int size_of_pointer = 8;
    #else
    #warning _PL_X64 is NOT defined
                int size_of_IOSTREAM = 144;
                int offset_to_poninter_of_IOFUNCTIONS = 72;
                int size_of_pointer = 4;
    #endif
    et d'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #if _PL_X64
                Marshal.WriteIntPtr(new IntPtr(function_array_out.ToInt64() + (size_of_pointer * (int)functionType)), callbackFunctionPtr);
    #else
                Marshal.WriteIntPtr(new IntPtr(function_array_out.ToInt32() + (size_of_pointer * (int)functionType)), callbackFunctionPtr);
    #endif
    Lorsque je compile pour la plate-forme x86 sans définir _PL_X64 l'espace des noms dans mon programme F# est reconnu, lorsque je compile pour la plateforme x64 en définissant _PL_X64 l'espace des noms n'est plus reconnu Je rappele que ça fonctionne bien par contre avec C#.

    Où est le problème ?

    Merci.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Il y a un bug en F# lors de références 64 bits : http://stackoverflow.com/questions/3...sual-studio-20

    Je ne sais pas si il est résolu (visiblement non). En anycpu ça devrait aller. Belle bête , le F#, dommage que ce ne soit pas (encore) très populaire
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Merci de ces infos, effectivement en mode anyCPU ça compile et fonctionne parfaitement !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage en mode 8 bits (couleurs)
    Par skip78 dans le forum Allegro
    Réponses: 2
    Dernier message: 20/07/2006, 09h22
  2. probleme passage parametre dans l'url IE
    Par kurthectic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/04/2006, 15h40
  3. probleme passage doGet et doPost
    Par yuriashford dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 27/04/2006, 09h14
  4. Probleme passage entre boite de dialogue
    Par kanabzh29 dans le forum MFC
    Réponses: 3
    Dernier message: 18/04/2006, 14h35
  5. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo