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

Prolog Discussion :

SWI-Prolog et VS2010 64bit


Sujet :

Prolog

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut SWI-Prolog et VS2010 64bit
    Bonjour tout le monde !

    J'ai un problème pour mettre en place la liaison SWI-Prolog et VS2010.

    J'ai téléchargé la dll présente ici.

    Puis j'ai mis en place l'exemple suivant dans une application console :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    using System;
    using SbsSW.SwiPlCs;
     
    namespace HelloWorldDemo
    {
        class Class1
        {
            static void Main(string[] args)
            {
                //Environment.SetEnvironmentVariable("SWI_HOME_DIR", @"C:\Programmes\pl");
     
                if (!PlEngine.IsInitialized)
                {
                    String[] param = { "-q" };  // suppressing informational and banner messages
                    PlEngine.Initialize(param);
                    PlQuery.PlCall("assert(father(martin, inka))");
                    PlQuery.PlCall("assert(father(uwe, gloria))");
                    PlQuery.PlCall("assert(father(uwe, melanie))");
                    PlQuery.PlCall("assert(father(uwe, ayala))");
                    using (PlQuery q = new PlQuery("father(P, C), atomic_list_concat([P,' is_father_of ',C], L)"))
                    {
                        foreach (PlQueryVariables v in q.SolutionVariables)
                            Console.WriteLine(v["L"].ToString());
     
                        Console.WriteLine("all child's from uwe:");
                        q.Variables["P"].Unify("uwe");
                        foreach (PlQueryVariables v in q.SolutionVariables)
                            Console.WriteLine(v["C"].ToString());
                    }
                    PlEngine.PlCleanup();
                    Console.WriteLine("finshed!");
     
                }
            }
        }
    }

    J'obtenais un message d'erreur qui me signifiait qu'il ne me trouvait pas la librairie de SWI-Prolog. Après recherche j'ai trouvé qu'il fallait ajouter en plus de la librairie de SWI-Prolog des .dll présentent dans le dossier "pl".

    Les dll en question : swipl.dll et pthreadVC2.dll

    Une fois cela ajouté, l'application se lance mais plante sur : PlEngine.Initialize(param);

    En me signifiant que l'application n'est pas une application WIN32 compatible.

    De ce fait je compile mon appli en 64bit et là, j'ai l'erreur suivante :
    Impossible de charger le fichier ou l'assembly 'SwiPlCs, Version=1.1.5990.0, Culture=neutral, PublicKeyToken=03ea137181587c56' ou une de ses dépendances. Le fichier spécifié est introuvable.
    Et depuis j'ai cherché sans succès une réponse à ce problème.


    Pour information voila ma configuration :
    VS 2010 x64 (j'utilise le framework 4 de .NET mais même avec le 3.5 j'ai les mêmes erreurs)
    Seven x64
    SWI-Prolog 6.0.2 x64


    C'est pour un projet pédagogique avec obligation d'utiliser le C#, d'avoir un IHM (avec forte préférence pour WPF) et exécution de code en prolog.

    Donc si quelqu'un à la solution à ce problème, je le remercie d'avance !

  2. #2
    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
    Il faut charger la dll 64 bits de la dernière version (pas celle qui se trouve sur la page d'accueil de C#) J'ai testé avec la version SwiPlCs_1.1.5990.0 que tu trouves à cette adresse rubrique DownloadPage.
    L'interface fonctionne aussi avec F# mais il faut compiler en mode any pas en mode x64 ! (bug F#).
    "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

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    Merci pour la réponse !

    C'est déjà la version 1.1.5990.0 que j'ai.
    J'avais réalisé un test avec la même dll que celle de l'exemple du lien que tu fournis mais le résultat est identique.

    J'ai essayé de compiler en mode "any CPU" et là j'obtiens l'erreur suivante :
    Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.
    Toujours au moment de : PlEngine.Initialize(param);

    J'ai peut être oublié quelque chose...

    A la création du projet C# en mode console, j'ai copier/coller le code d'exemple dans mon main(), puis j'ai copier/coller tout le contenu du zip de la dll 1.1.5990.0 (sauf le .dll non 64bit) dans bin -> debug de mon application. Puis j'ajoute une référence dans mon projet qui pointe vers SwiPlCs64.dll (qui est donc dans bin -> debug) et enfin j'ajoute : using SbsSW.SwiPlCs;

  4. #4
    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
    Moi, j'ai laissé la dll dans un répertoire à part, mais à part ça je pense que j'ai fait la même chose. Je n'ai pas eu de problème, j'ai la même configuration.
    "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

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    Si je retires toutes les dll que j'ai ajouté du dossier de mon application, il me fait (quelque soit le mode de compilation x86, x64, any CPU) le message d'erreur dans la citation de mon premier message (problème de références).

    Est-ce que ça pourrait être un problème avec la version de SWI-Prolog ?

  6. #6
    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
    Je viens de tester mon code avec la version de developpement 6.13.
    "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

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    Ok je viens d'essayer avec la 6.13 et j'ai toujours le même problème...

    Je me suis dis que c'était peut-être un problème d'accès au dossier pl donc j'ai mis les tous les droits à tout le monde, et j'ai fait pareil pour tous les dossiers concernés et ça ne change rien...

    J'ai essayé avec et sans l'ajout des dll : swipl.dll et pthreadVC2.dll
    Mais ça ne change rien.

    Après avoir joué avec les .dll voila les différents messages d'erreur :

    Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.
    Se produit quand : toutes les .dll du zip 1.1.5990.0 + les deux dll : swipl.dll et pthreadVC2.dll sont présents dans le dossier debug de mon appli

    Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
    Se produit quand : toutes les .dll du zip 1.1.5990.0 sont présents dans le dossier debug de mon appli + les deux dll : swipl.dll et pthreadVC2.dll sont resté uniquement dans le dossier pl

    Impossible de charger le fichier ou l'assembly 'SwiPlCs, Version=1.1.5990.0, Culture=neutral, PublicKeyToken=03ea137181587c56' ou une de ses dépendances. Le fichier spécifié est introuvable.
    Se produit quand les mêmes dll sont présentes dans debug sans SwiPlCs.dll (la normal pas la 64)

    Ce qui m'a permis de conclure que j'avais un soucis quelque part et après vérif en effet, suite à un formatage récent, je me suis planté d'install et j'ai un VS 2010 x86...

    De ce fait, je me dis que je vais installer une version x86 de SWI-Prolog et là, ben rien ne change j'ai toujours les mêmes erreurs soit :
    N'est pas une application WIN32 valide
    ou
    Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
    ou
    Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.

  8. #8
    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
    La variable d'environnement SWI_HOME_DIR est-elle définie ?
    "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

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    Après une visite dans mon invite de commande, il semble bien que la variable SWI_HOME_DIR n'existe pas, puisque que le résultat de :

    echo %SWI_HOME_DIR% est : %SWI_HOME_DIR%

    J'ai donc réalisé un set SWI_HOME_DIR est là j'obtiens : la variable d'environnement SWI_HOME_DIR n'est pas définie.

    Dois-je la créer ? Si oui, avec quelle valeur ?

  10. #10
    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
    Chez moi j'ai SWI_HOME_DIR = C:\Program Files\pl
    Pour que la valeur soit prise en compte, il faut relancer une nouvelle session utilisateur.
    "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

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    J'ai fais, en invite de commande, un :
    set SWI_HOME_DIR=C:\Program Files (x86)\pl
    Puis un echo %SWI_HOME_DIR qui m'affiche : C:\Program Files (x86)\pl

    et là j'obtiens toujours les mêmes messages d'erreur.

    Edit : Avec cette méthode je n'ai pas ré-ouvert de session ni reboot le pc vue que ça créé la variable pour les process en-cours.

  12. #12
    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
    Oui mais elle n'existera pas la prochaine fois.
    Tu peux créer la variable dans la base de registre HKEY_CURRENT_USER\Environment nouvelle valeur REG_SZ
    D'autre part, si tu as une configuration 64 bits, il faut installer SWI-Prolog 64 bits.
    "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

  13. #13
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    J'ai actuellement la 64bit SWI-Prolog 6.13

    J'ai ajouté la variable d'environnement (uniquement sur ma session) et elle est bien présente après un redémarrage.
    Cette variable pointe sur C:\Program Files\pl qui est bien l'emplacement de SWi-Prolog64 et cette variable se nomme "SWI_HOME_DIR"

    J'ai retiré toutes les dll du projet.
    J'ajoute juste en référence à mon projet la .dll 1.1.5990.0.

    Si j'ajoute en référence la x64 j'ai :

    Impossible de charger le fichier ou l'assembly 'SwiPlCs, Version=1.1.5990.0, Culture=neutral, PublicKeyToken=03ea137181587c56' ou une de ses dépendances. Le fichier spécifié est introuvable.
    et si je mets la x86 :

    Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
    Edit : Si ça peut servir voila la sortie de l'exécution avec la ddl x86 :


    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Users\Shr3ck\Documents\Projet IA\ConsoleApplication1\ConsoleApplication1\bin\x64\Debug\ConsoleApplication1.vshost.exe' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    Le thread 'vshost.NotifyLoad' (0x1250) s'est arrêté avec le code 0 (0x0).
    Le thread '<Sans nom>' (0xeac) s'est arrêté avec le code 0 (0x0).
    Le thread 'vshost.LoadReference' (0x1c4) s'est arrêté avec le code 0 (0x0).
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Users\Shr3ck\Documents\Projet IA\ConsoleApplication1\ConsoleApplication1\bin\x64\Debug\ConsoleApplication1.exe' chargé, symboles chargés.
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Users\Shr3ck\Documents\Projet IA\ConsoleApplication1\ConsoleApplication1\bin\x64\Debug\SwiPlCs.dll' chargé
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_fr_b77a5c561934e089\mscorlib.resources.dll' chargé
    Une exception de première chance de type 'System.IO.FileNotFoundException' s'est produite dans SwiPlCs.dll
    'ConsoleApplication1.vshost.exe' (Managé (v4.0.30319))*: 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll' chargé, chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    Le programme '[4524] ConsoleApplication1.vshost.exe: Trace du programme' s'est arrêté avec le code 0 (0x0).
    Le programme '[4524] ConsoleApplication1.vshost.exe: Managé (v4.0.30319)' s'est arrêté avec le code 0 (0x0).

  14. #14
    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
    De toute façon, avec Prolog 64 bits, il faut la dll 64 bits, et compiler en x64 ou any, impératif !
    "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

  15. #15
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    En compilation x64 ou Any avec la .dll 64 j'ai toujours le même message d'erreur :

    Impossible de charger le fichier ou l'assembly 'SwiPlCs, Version=1.1.5990.0, Culture=neutral, PublicKeyToken=03ea137181587c56' ou une de ses dépendances. Le fichier spécifié est introuvable.
    Bon je me suis rendu compte que j'étais en framework 4 client et non normal donc j'ai switché mais cela n'a rien changé.

    J'ai voulu essayer avec un visual studio 2010 x64 mais comme je n'en ai pas sous la main... je vais peut-être essayer de simplement ré-installer vs2010 des vous que le problème viendrait de vs et non de SWI-Prolog.

    Je commence à être dans le flou total pour le coup

  16. #16
    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
    Moi j'utilise VS2010 32 bits.

    le .NET framework est 4 Client Profile.
    "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

  17. #17
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Points : 167
    Points
    167
    Par défaut
    Je viens de finir de formater mon pc, et j'ai juste réinstaller :

    Windows Seven x64 pro
    VS 2010 Ultimate x86
    Swi-Prolog 6.13 x64
    Placer le contenu du zip de la 1.1.5990.0 des dll de SWI-Prolog directement à la racine du disque.

    Je créé un nouveau projet dans VS2010 en C# mode console.
    Je copie/colle le code de mon premier poste à la place de celui auto généré à la création d'un projet c# console.
    J'ajoute une référence qui pointe sur la dll x64 qui se trouve directement dans C:
    Je précise que je veux compiler en Any CPU.
    Je lance la compilation en mode débug et là j'ai :
    Impossible de charger le fichier ou l'assembly 'SwiPlCs, Version=1.1.5990.0, Culture=neutral, PublicKeyToken=03ea137181587c56' ou une de ses dépendances. Le fichier spécifié est introuvable.
    De ce fait j'ajoute la variable d'environnement SWI_DIR_HOME

    Pour cela je fait :
    Démarrer -> Clic droit sur "Ordinateur" -> Paramètre Système Avancés -> Variable d'environnement -> Partie Variable Système -> Nouveau :
    Nom = SWI_HOME_DIR
    Valeur = C:\Program Files\pl

    De ce fait, je redémarre la machine.
    Je fais un cmd -> echo %SWI_HOME_DIR% et j'obtiens C:\Program Files\pl.

    Donc je relance vs et je compile de nouveau, j'obtiens la même erreur qu'au dessus.
    Si j'ajoute au projet la seconde .dll (donc les deux sont présentes) j'obtiens :

    Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
    J'ai compilé en Framework 4, 4 client, 3.5, 3.5 client et pour chaque en x86, x64, Any CPU et les résultats ne changent pas...

Discussions similaires

  1. [Swi-Prolog][Xpce] Alignement négatif
    Par je®ome dans le forum Prolog
    Réponses: 4
    Dernier message: 12/03/2007, 13h37
  2. Réponses: 1
    Dernier message: 09/01/2007, 14h33
  3. Le mode debug de swi-prolog
    Par Boubou Balrog dans le forum Prolog
    Réponses: 2
    Dernier message: 18/12/2006, 10h55
  4. Désactiver les warnings en swi-prolog
    Par Cecilka dans le forum Prolog
    Réponses: 2
    Dernier message: 15/12/2006, 11h33
  5. Réponses: 3
    Dernier message: 03/05/2006, 15h30

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