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 :

Inserer fichier cpp et h non managé dans solution managé


Sujet :

C++/CLI

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut Inserer fichier cpp et h non managé dans solution managé
    Bonjour à tous!

    Comme indique l'intitulé du post je souhaiterais pouvoir récupérer du Code que j'ai fait il y a quelque temps en C++ MFC dans ma solution c++/CLI mais je n'ai aucune idée du moyen!

    J'ai essayé avec les #pragma unmanaged et /CLR

    mais rien à faire plein d'erreur à la generation surtout j'ai l'impression sur les types de données comme BYTE ou WORD...

    Merci d'avance de votre aide

    Kemanke

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    tu as juste à ajouter ces fichiers tels quels, ils devraient compiler sans trop de soucis
    tu peux également, dans les propriétés du fichier, indiquer qu'il est à compiler sans l'option /clr

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Merci de la réponse, c'est ce que j'ai fait: Ajouté les fichiers tels quel et dans les propriétés /CLR.

    Pour info j'ai fait un projet Application Windows Forms (je ne sais pas si cela change quelque chose).

    J'ai surtout apprement des problèmes de typage comme avec les BYTE et les WORD et j'ai aussi des erreurs telles que:

    error C3821: 'unsigned char'*: impossible d'utiliser un type ou une fonction managée dans une fonction non managée qui est sans doute du au fait que le type de ces fonctions retournaient un BYTE et que j'ai donc changé en System::Byte pour pas qu'il n'y ai de probleme de typage.

    Une idée peut etre?

    Merci d'avance

    Kemanke

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    justement, si t'es fichiers doivent être compilés en natif, il faut mettre l'option de compilation pour ne pas utiliser /clr, pour les fichiers qui doivent être compilés en natif

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Comment fais-je pour alors ne pas mettre l'option /clr juste sur ces fichier et la mettre sur les autres tels que form1.h qui est le source de ma windows forms?

    Bon j'ai réussi finalement a modifier cette option juste pour un fichier et maintenant j'ai deux types d'erreurs:

    1- du a #include "stdafx.h" : error C2855: option de ligne de commande '/clr' non cohérente avec l'en-tête précompilé
    2- Erreur 6 error C4936: ce __declspec est pris en charge uniquement lorsqu'il est compilé avec /clr ou /clr:pure C:\Program Files\Microsoft Visual Studio 8\VC\include\iosfwd 34
    et cette deuxième 26 fois...

    J'ai surement omis de te dire quelque chose et je dois surement m'embrouiller.

    Merci encore de ton aide

    Kemanke

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Bon pour résoudre le problème stdafx.h j'ai enleve l'option d'en-tête pré-compilé dans l'option du fichier.

    mais maintenant j'ai 4 grosses erreurs de linkage: je les mets ici au cas ou quelqu'un aurait une idée car là j'avoue de ne pas savoir d'ou cela peut venir car je ne comprend pas le message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error LNK2019: symbole externe non résolu "__declspec(dllimport) bool __cdecl API_send_string(char const *)" (__imp_?API_send_string@@YA_NPBD@Z) référencé dans la fonction "public: unsigned char __thiscall CCom::Com_commandMode(void)" (?Com_commandMode@CCom@@QAEEXZ)
    voilà comment est déclarer ma fonction API_send_string et Com_commandMode
    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
     
    //*************dialoguedll.h*************//
    ...
    // Prototypes des fonctions
    // Envoi de chaine vers la liaison série
    DIALDLL_API bool API_send_string( const char *pTxt );
    ...
     
    //*************com.h*************//
     
    #include dialoguedll.h
    ...
     
    BYTE Com_commandMode( void );
    ...
    Il faut savoir que j'utilise la fonction API_send_string() dans la fonction Com_commandMode()

    Merci de toutes aides sur cette erreur

    Kemanke

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il te manque pas un .lib à lier ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Je ne pense pas dans mon projet MFC je n'avais pas eu à le faire?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Ok j'ai trouvé la definition de ma fonction d'importation de la dll n'était pas la même que celle dans la dll, i.e.

    j'avais mis bool ma_fonction(void) dans l'importation alors que dans la dll c'était
    BOOL ma_fonction(void).

    Je ne pensais pas que cela pouvais poser un soucis.

    En tout cas, un grand merci pour ton aide Nico-pyright(c)
    et bon courage

    Kemanke

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/12/2014, 11h07
  2. Management et TOP Management dans les projets informatiques
    Par lynda09 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 13/02/2013, 22h51
  3. Réponses: 2
    Dernier message: 12/01/2006, 14h54
  4. [MySQL]Inserer fichier pdf dans une table
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/11/2005, 16h08
  5. Réponses: 4
    Dernier message: 25/06/2005, 12h37

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