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++/CLI Discussion :

Windows form et DLL


Sujet :

C++/CLI

  1. #1
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut Windows form et DLL
    Salut,

    je suis en train de faire ma première interface en C++ et j'ai quelque soucis

    je voudrai apeller une fonction qui se trouve dans une DLL mais je sais pas comment bien mis prendre

    j'ai essayé comme sa:

    Code : 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
    #pragma comment (lib,"Fonction.lib")
     
     
    extern "C++" __declspec(dllimport) double __stdcall Fonction(double AgeP,double Taillen,double Poidsn,int hum,double Vet[5][4]);
    //...
     
    private: System::Void Calculer_Click(System::Object^  sender, System::EventArgs^  e) {
     
    			double AgeP;
    			double Taillen;
    			double Poidsn;
    			int hum;
    			double retour;
     
    			AgeP =double(Ag->Value);
    			Taillen =double(Taille->Value);
    			Poidsn =double(Poids->Value);
    			hum =int(HR->Value);
     
    			retour=Fonction(AgeP, Taillen, Poidsn, hum, Vet);
     
    }
    mais je me retrouve avec ces erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Compilation en cours...
    interface.cpp
    Édition des liens en cours...
    interface.obj : error LNK2028: jeton non résolu (0A00000D) "double __stdcall DemoPCPretherm(double,double,double,int,double (* const)[4])" (?DemoPCPretherm@@$$FYGNNNNHQAY03N@Z) référencé dans la fonction "private: void __clrcall interface1::Form1::Calculer_Click(class System::Object ^,class System::EventArgs ^)" (?Calculer_Click@Form1@interface1@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
    interface.obj : error LNK2019: symbole externe non résolu "double __stdcall DemoPCPretherm(double,double,double,int,double (* const)[4])" (?DemoPCPretherm@@$$FYGNNNNHQAY03N@Z) référencé dans la fonction "private: void __clrcall interface1::Form1::Calculer_Click(class System::Object ^,class System::EventArgs ^)" (?Calculer_Click@Form1@interface1@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
    C:\Documents and Settings\Kévin\Bureau\stage_mediprema\interface\Debug\interface.exe : fatal error LNK1120: 2 externes non résolus
    Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\Kévin\Bureau\stage_mediprema\interface\interface\Debug\BuildLog.htm"
    interface - 3 erreur(s), 0 avertissement(s)
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
    de plus je voudrai afficher retour dans une TextBox mais apparemment c'est pas possible Visual me sort: impossible de convertir double en string^ alors que sous VB sa passe très bien...

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Convert::ToString().

    De plus, à mon avis ça ne passe pas aussi bien en VB si tu actives Option Strict.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    merci, sa fait déjà un problème de régler . En VB, je sais pas pour l'option c'était ma première fois aussi mais sa m'afficher bien la bonne valeur donc pas de soucis, le plus embêtant c'est l'histoire de DLL ...

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    As-tu lié ton projet au .lib de la DLL concernée?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    non je l'ai juste copier dans le répertoire ou se trouve mon projet, je n'est utilisé qu'une fois les DLL dans une apli WIN32, j'avais fais comme sa et sa avez marché
    je doit l'ajouter au fichier d'en-tete? ressources? source?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Project Properties -> Configuration properties -> Linker -> Input -> Additional Dependencies.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    c'est fait mais sa ne change rien...
    est-ce qu'il faut coller le .lib dans un répertoire particulier?

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Ben, il faut simplement qu'il soit "trouvé" par Visual.
    Par exemple, en ajoutant le répertoire où se trouve le .lib dans les options du projet.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    justement je sais pas ou est ce qu'il faut l'ajouter...
    j'ai essayé: dans "Ressource>general>autre repertoire include" et à un autre endroit mais sa marche toujours pas.

    Sinon je compile en "Release" j'ai une erreur de moins

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ------ Début de la génération*: Projet*: interface, Configuration*: Release Win32 ------
    Édition des liens en cours...
    interface.obj : error LNK2001: symbole externe non résolu "double __stdcall DemoPCPretherm(double,double,double,int,double (* const)[4])" (?DemoPCPretherm@@$$FYGNNNNHQAY03N@Z)
    C:\Documents and Settings\Kévin\Bureau\stage\interface\Release\interface.exe : fatal error LNK1120: 1 externes non résolus
    Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\Kévin\Bureau\stage_mediprema\interface\interface\Release\BuildLog.htm"
    interface - 2 erreur(s), 0 avertissement(s)
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Project Properties -> Configuration properties -> Linker -> General -> Additional Library Directories.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    je l'ai deja fait mais sa marche toujours pas...

    dans Project Properties -> Configuration properties -> Linker -> Input -> Additional Dependencies.
    j'ai sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fonction.lib $(NOINHERIT)
    c'est bon ou il faut mettre le chemin complet de Fonction.lib?

    EDIT: avec le chemin complet sa me vire les erreurs mais j'ai celle là à la place:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LINK : fatal error LNK1104: impossible d'ouvrir le fichier 'C:\Documents.obj'

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Un mot: Guillemets.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    c'est bon cette erreur a disparu mais les anciennes sont revenue je crois que je vais jamais m'en sortir

Discussions similaires

  1. IIS et ASP faisant appel a une DLL windows form
    Par yassine.s dans le forum ASP.NET
    Réponses: 6
    Dernier message: 10/02/2015, 15h56
  2. Windows form et Importation dll : type non défini
    Par Isiloki dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/04/2012, 11h00
  3. Réponses: 3
    Dernier message: 06/04/2011, 20h20
  4. DLL commune à plusieurs applications Windows Forms
    Par Tonlight dans le forum Windows Forms
    Réponses: 13
    Dernier message: 10/03/2010, 09h40
  5. Réponses: 1
    Dernier message: 12/01/2007, 21h40

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