VSC++.net cohabitions code Managé dans du non managé?

VSC++.net cohabitions code Managé dans du non managé? - C++ - Programmation

Marsh Posté le 22-02-2005 à 11:57:56    

Bonjour,
 Actuellement je crée un projet sur visual C++.net et j'utilise les class MFC qui est du code non managé.
je souhaite utilisé les class qui gérer les XML tel que XmlTextWriter et XmlDocment mais je crois (et j'espère que j'ai tors) que ces class ne peuvent être utiliser que dans du code managé.
Il est possible d’utiliser les 2 types de code dans le même projet mais je n'y suis pas arrivé.
 
Les références pour utiliser ces class dans un projet managé sont les suivant:
   
#using <mscorlib.dll>
#using <System.xml.dll>
 
using namespace System;
using namespace System::Xml;
using namespace System::Collections;
 
Lorsque je l'ajoute dans mon projet le compilateur me donne une error:
Le code ciblé est mangé et requiert #using <mscorlib.dll> et l'option '/clr'

Es que vous pouvez l'expliquer comment inclure les class XmlTextWriter et XmlDocment dans mon projet. Ou me proposé une autre solutions.
Merci de vos retours d'expérience et vos prestigieuses intuitions.


Message édité par darksqual le 23-02-2005 à 12:50:24
Reply

Marsh Posté le 22-02-2005 à 11:57:56   

Reply

Marsh Posté le 23-02-2005 à 12:49:56    

effectivement il est possible de faire cohabite le code non managé et le code managé, mais il faut partir d'un projet managé. mon probleme actuellement est de migrer mon projet MFC dans un projet vide C++ managé.


Message édité par darksqual le 23-02-2005 à 12:51:19
Reply

Marsh Posté le 23-02-2005 à 12:55:30    

ben ou est le problème :??:
tu fais un copier/coller dans un projet managé et puis voila


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-02-2005 à 13:29:05    

Propriétés du projet->Général->Utilisation des extensions managées : oui (/clr)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 23-02-2005 à 14:10:32    

Harkonnen a écrit :

ben ou est le problème :??:
Tu fais un copier/coller dans un projet managé et puis voila


J’ai effective fait un copier coller mais ca ne marche pas. J’ai le message d'erreur suivant:
error LNK2019: symbole externe non résolu _main référencé dans la fonction _mainCRTStartup
 
j'ai pensé que le compilateur ne trouvait pas le point d'entrer;
 
Dans mon projet le point d'entrer est la déclaration d'une class dérivé de Winapp;
 
CServeurSocketApp theApp;
 
pour compiler j'ai remplace cette ligne par les suivantes:
int main(void)
{
CServeurSocketApp theApp;
}

Et lorsque que j'exécute le projet et que j'ignore tous les messages d'erreur, le projet marche parfaitement. :whistle:  

HelloWorld a écrit :

Propriétés du projet->Général->Utilisation des extensions managées : oui (/clr)


J'ai aussi essaié également cette possibilité et le compilateur m'affiche le message d'erreur suivant:
ligne de commande error : option de ligne de commande '/RTC1  et /CLR non compatibles
 
 
Merci bien.
Avez vous d'autre suggestion


Message édité par darksqual le 23-02-2005 à 14:11:14
Reply

Marsh Posté le 23-02-2005 à 14:19:39    

Tu as créé un projet console, il s'attend à avoir main().
Pour ton erreur, change voir tes settings dans project->C/C++->Génération de code:Vérifications de base à l'exécution. Normalement sur "Par défaut" ça passe.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 23-02-2005 à 15:23:04    

Les deux projets sont différents.
 
Pour le premier j'ai tenter copier coller d'un projet MFC
(Et non console) dans un projet vide C++ managé. c'est pour celui ci qu'il ne trouve pas le point d'entrer.
 
Pour le second je suis parti du même projet MFC (et non console) en rajoutant un code Managé.  
Et c'est ici que j'ai une erreur:  
Le code ciblé est mangé et requiert #using <mscorlib.dll> et l'option '/clr'
 
Si on s'était déjà bien compris,
 
J’ai fais le changement et j'ai une autre erreur:
ligne de commande error : option de ligne de commande '/GM  et /CLR non compatibles
 
j'ai pallié a ce problème en modifiant les settings dans project->C/C++->Génération de code:Activation de la régénération minimale,qui avait comme valeur oui(/GM) par non.
 et de nouveau une autre erreur:
ligne de commande error : option de ligne de commande '/ZI  et /CLR non compatibles
 
je ne sais plus quoi faire. :cry:

Reply

Marsh Posté le 23-02-2005 à 17:11:34    

Tu modifies tes settings jusqu'à ce que ça passe
http://msdn.microsoft.com/library/ [...] _2f.Zi.asp


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 23-02-2005 à 18:35:50    

Enfin ça marche. Je ne sais pas si les modifications sont aux normes  mais ça marche. Cependant pour moi à cette instant c’est l’essentiel Merci pour vos suggestion et un grand merci à [HelloWorld].
Pour tout ceux qui veulent ajouter de code C++ manager dans un projet MFC(aux code non managé), et qui rencontre les même difficultées que moi, voici les modifications faites dans les settings (propriété du projet) en fonction des différents messages d’erreur rencontrés dans l'ordre.
 
Changement effectuer setting :
 
Le code ciblé est mangé et requiert #using <mscorlib.dll> et l'option '/clr'  
- Général->utilisation des extensions managées : Oui
- C/C++->Général->Compilation comme code managé : pris en charge des assemblys
 
Ligne de commande error : option de ligne de commande '/RTC1  et /CLR non compatibles
 
- C/C++->Génération de code->vérification de base à l’exécution : par défaut
 
ligne de commande error : option de ligne de commande '/GM  et /CLR non compatibles
 
- C/C++->Génération de code->activation de la régénération minimale : non
ligne de commande error : option de ligne de commande '/ZI  et /CLR non compatibles
 
- C/C++->Général->format des informations de débogage : Base de données du programme (/Zi)


Message édité par darksqual le 24-02-2005 à 10:56:09
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed