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

Visual C++ Discussion :

[C++/CLR] Wrapper code C dans projet Visual C# >> erreurs � l'�dition de lien


Sujet :

Visual C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par d�faut [C++/CLR] Wrapper code C dans projet Visual C# >> erreur compilation C2008
    Bonjour � tous,

    Je travaille sous Visual Studio 2005, sur un projet en C#. Depuis quelques jours, je dois int�grer un code source C d'un autre programme � mon code C#, pour cela je souhaite faire un wrapper.

    Ma premi�re �tape a consist�e � int�grer le code source dans un projet "Class Library"' en Visual C++. Voici l'arborescence de mon projet pour l'instant :



    Cependant, je ne parviens pas encore � compiler le code source correctement.

    Pour l'instant, je rajoute mes fichiers .c et .h au fur et � mesure dans mon projet pour g�rer correctement les d�pendances.
    Visual studio m'a lev� une premi�re erreur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Error	1	Command line error D8045 : cannot compile C file 'skewangle.c' with the /clr option
    que je suis parvenu � �viter en modifiant l'extension des fichiers .c en .cpp.

    Or en ce moment, je reste bloqu� sur une erreur de compilation diff�rente : lors de la compilation du fichier skewangle.cpp incluant quelques fichiers headers .h, Visual Studio me sort une erreur C1083.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Error	2	fatal error C1083: Cannot open include file: 'xesup.h': No such file or directory
    Or le fichier xesup.h existe bien, et figure dans le r�pertoire Header Files du projet Visual Studio.
    L'ent�te du fichier skewangle.cpp est le suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #include "stdafx.h"
     
    #include <xesup.h>
    #include <xehdr.h>
    #include "skewangle_exp.h"
    Voil�, si quelqu'un pourrait voler � mon secours, je lui en serais tr�s reconnaissant.
    Par ailleurs, je connais � peine Visual Studio 2005, et je le d�couvre chaque jour au travail, de plus je me lance dans la r�alisation d'un wrapper C, qui me parait assez compliqu�, j'accepte donc avec joie toute aide / conseils !

    Merci par avance !
    Raph

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Ne renomme pas tes .c en .cpp : Garde-les en .c, puis va dans les options du projet pour ces fichiers-l� et d�sactive l'option /clr pour eux ("Common Language Runtime Support").
    Par contre, pour les headers manquants, il faudra voir �a de plus pr�s. Peut-�tre ne sont-ils pas dans le m�me dossier que le code C ?
    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 averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par d�faut
    Citation Envoy� par M�dinoc Voir le message
    Ne renomme pas tes .c en .cpp : Garde-les en .c, puis va dans les options du projet pour ces fichiers-l� et d�sactive l'option /clr pour eux ("Common Language Runtime Support").
    Par contre, pour les headers manquants, il faudra voir �a de plus pr�s. Peut-�tre ne sont-ils pas dans le m�me dossier que le code C ?
    Bonjour,

    Merci de tes r�ponses. J'ai suivi tes conseils pour les fichiers .c non plus renomm�s, en d�sactivant la prise en charge de CLR lors de la compilation.
    De plus le probl�me de recherche des headers est r�solu. En effet, lorsque j'ajoutais un fichier .h dans mon projet celui n'�tait pas copi� dans le r�pertoire de la solution et du coup il ne le trouvait pas ... un peu stupide � mon avis, mais enfin corrig�.

    Le probl�me C1083 est r�solu !

    Par contre, j'ai un probl�me lors de l'�dition de lien. Dont voici un extrait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Error	3	error LNK2019: unresolved external symbol _XEHdrCreateHeader referenced in function _XEngSkewAngle
    Ce probl�me vient de plusieurs types impl�ment�s dans d'autre fichier .c ou bien dans des librairies. Je voudrais inclure les librairies contenant ces d�clarations. Je dispose de deux types de libraires, des .lib et des points .dll. Je ne parviens pas � les r�f�rencer dans mon projet, Visual Studio me r�pond que la DLL / LIB choisie n'est pas un contr�le ActiveX enregistr� ou bien une assembly .NET.

    J'ai �galement ajout� le path d'une r�pertoire contenant les librairie au compilateur, pour qu'il aille les chercher lors de la compilation.
    N�anmoins, le probl�me persiste.

    Quelqu'un a-t-il une id�e ? Ya-t-il un autre moyen d'inclure des librairie � Visual Studio ou bien faut-il que je recompile le code source de ces derni�res pour les re-g�n�rer.

    Meric d'avance !
    Raph.

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Il faut ajouter le nom des .lib correspondant aux DLLs dans "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.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par d�faut
    Citation Envoy� par M�dinoc Voir le message
    Il faut ajouter le nom des .lib correspondant aux DLLs dans "Project Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies".
    Merci beaucoup l'ami, cela fonctionne en effet !
    Allez hop je mets un tag "R�solu par M�dinoc"

    N�anmoins, je reposterais sans doute tr�s vite, car je vais sans doute griller pas mal de neurones sur le wrapper C !!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 13/01/2015, 13h28
  2. R�ponses: 0
    Dernier message: 19/04/2010, 14h37
  3. Erreur d'�dition des liens dans un projet c++
    Par modafine dans le forum C++
    R�ponses: 3
    Dernier message: 08/04/2009, 15h53
  4. [Visual Studio .Net 2003]Probl�me d'�dition de liens
    Par Mindiell dans le forum Visual C++
    R�ponses: 10
    Dernier message: 25/05/2007, 23h43
  5. R�ponses: 3
    Dernier message: 26/01/2006, 13h11

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