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 :

Convertir un programme C++ en dll


Sujet :

C++

  1. #1
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Convertir un programme C++ en dll
    Bonjour

    Quelqu'un sait comment convertir un projet . exe C++ en DLL pour être compatible avec C# ?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    le plus simple est de créer un projet DLL et de remettre tous les fichiers de l'exe.

  3. #3
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    ok merci ,

  4. #4
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Impossible de charger la DLL 'testing.dll': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007
    Bon j'ai fait un Dll créer par c# et maintenant je me suis bloquer
    m'aider de faire une point d'entrer dans mon dll qui s'appel "testing"creér par c# qui fait la somme de deux entier
    et bien sur don mon aplication je le fait appel par dll import comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     [DllImport("testing.dll", EntryPoint = "traitement")]
            public static extern  int traitement(int a1,int a2);
    l’exception m'affiche :
    Impossible de charger la DLL 'testing.dll': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)

    svp expliquer cette exception je me suis bloquer sa fait deux jours

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 578
    Points
    218 578
    Billets dans le blog
    120
    Par défaut
    Peut être qu'il ne trouve simplement pas le fichier.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    ou je doit déplacer le fichier .Dll?
    svp si tu me peut m'aidez cité mois étape par étape ce que je doit faire pour que je réussite d'importer mon Dll je me suit débutant

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 613
    Points : 30 616
    Points
    30 616
    Par défaut
    Salut,

    La première chose à faire est de s'assurer que les fonctions et les classes dont tu auras besoin en C# sont correctement exportées.

    Pour ce faire, on utilise généralement une directive préprocesseur du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifdef SHARED
        #ifdef MYLIBEXPORT
            #define MYLIB_API __declspec(dllexport)
        #else
            #define MYLIB_API __declspec(dllimport)
        #endif // MYLINEXPORT
    #else
        #define MYLIB_API
    #endif // // SHARED
    qui s'assurera que les bonnes conventions d'appel seront utilisées

    on déclarera alors les classes devant être exportées par la dll sous une forme proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class MYLIB_API MyClass
    {
        /* ...*/
    };
    et les fonctions devant être exportées sous une forme proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void MYLIB_API laFonctionQuiFaitPouet(/* ...*/ );
    (note que tel que j'ai présenté la directive préprocesseur, elle offre l'énorme avantage de permettre les convention d'appel "classiques" dans le cas d'une application "stand alone" et / ou d'une bibliothèque statique )

    Il faut ensuite générer un projet de type "dll" de la manière classique, en ajoutant l'ensemble des fichiers du projet (à l'exception généralement de la fonction main, qui est parfois remplacée par une fonction "dllMain" qui permet de charger correctement la dll )

    Pour que la dll soit retrouvée par le programme qui doit l'utiliser, il faut, au choix:
    1. la placer dans le meme dossier que l'exécutable qui en a besoin
    2. la placer dans un dossier apparaissant dans la variable PATH de l'utilisateur (ou de l'ordinateur).
    3. La placer dans le dossier réputé contenir l'ensemble des dll du système :
    4. C:\Windows\System32 ou C:\Windows\SysWOW64 selon que la bibliothèque a été compilé en mode 32 ou 64 bits (note qu'il te faudra des droits d'admin pour cette dernière solution )
    La première solution est sans doute à privilégier lorsqu'il n'y a qu'une application qui a besoin de la dll

    La deuxième est généralement privilégiée lorsque la dll est susceptible d'être utilisée par plusieurs applications et que l'on souhaite éviter d'avoir à l'installer avec des privilèges d'administrateur) (il "suffit" d'un simple fichier batch pour éventuellement rajouter n'importe quel chemin à la variable PATH )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    merci bien je vais l’essayer ,
    le code de une directive préprocesseur ou je doit le mettre

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/06/2007, 12h29
  2. Comment Programmé un Resource DLL Wizard
    Par zizo89 dans le forum Delphi
    Réponses: 1
    Dernier message: 06/05/2007, 21h17
  3. [TP 7] Convertir un programme en Delphi en pascal
    Par diden138 dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 21/05/2006, 21h42
  4. Question de pointeur entre un programme et une DLL
    Par Neilos dans le forum C++Builder
    Réponses: 12
    Dernier message: 01/02/2005, 19h12
  5. Convertir un programme Visual c++ vers C++ builder
    Par Skarlix dans le forum C++Builder
    Réponses: 11
    Dernier message: 16/10/2004, 22h51

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