Indicateur code natif ou managé en VC++ .NET

hherry Messages postés 5 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 1 avril 2005 - 30 mars 2005 à 10:11
hherry Messages postés 5 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 1 avril 2005 - 1 avril 2005 à 09:43
Bonjour,

Je souhaite compiler une DLL (développée sous VC++ 6) en 100% managé avec
VC++ .NET 2003. Je n'ai pas droit à l'erreur car c'est pour une application
Pocket PC et VC++ .NET ne sait pas compiler en natif pour PPC : il me ferait
du code natif Win32 et ça planterait le Pocket PC.

J'ai activé l'option "Utiliser les extensions managées" et j'ai lu que VC++
compile tout ce qu'il peut compiler en managé et le reste en natif. J'ose
espérer que la majorité de ma DLL est bien compilée en managé et qu'il ne me
reste qu'une petite partie à adapter, mais je n'en sais rien du tout.

Existe-t-il un indicateur pour savoir si une partie du code demeure compilée
en natif et si possible de quelle partie il s'agit ?

Merci d'avance pour votre aide.

5 réponses

cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
30 mars 2005 à 17:25
Il ne serai pas plus simple que tu te procure un compilateur adéquate??
comme Embedded Visual C++ par exemple, la tu devrai pouvoir compiler ta
dll sans trop de souci...(enfin sauf si tu doi adapter le code)

mais sinon, je ne connais pas trop le mode managé, ceci di, cela
m'étonnerai qu'il te compil une parti en natif et l'autre non, ca me
semble plus logique qu'il compile tout pareil. Mais je me trompe peu
etre...sinon essaye ta dll sur un pocketPC et tu a un soft PEinfo qui
tourne sur ppc qui va te donner plein d'info sur ta dll....
0
hherry Messages postés 5 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 1 avril 2005
31 mars 2005 à 08:58
eMbedded Visual C++ compile en natif et j'ai absolument besoin de code managé... Mais merci quand même de ton message.
0
cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
31 mars 2005 à 18:51
je ne sais pas ce que tu entend par natif ou managé (si tu pouvai me le dir )

Mais une chose est sur, EVC peut te compilé un prog ou dll pour ton PPC (d'ailleur il en autre fait pour ca)
0
hherry Messages postés 5 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 1 avril 2005
1 avril 2005 à 09:35
Ok, je me lance !

Le compilateur natif crée un exécutable qui dialogue directement avec la plate-forme visée lors de la compilation. C'est la compilation classique jusqu'à la version 6 de Visual Studio (Microsoft) pour la plate-forme Win32 et eMbedded Visual C++ 4.0 pour la plate-forme des systèmes mobiles tels que Pocket PC 2003 (Windows Mobile 2003).

Le compilateur managé quant à lui crée un exécutable qui nécessite la présence d'une couche intermédiaire pour dialoguer avec la plate-forme visée. C'est le cas du java avec la machine virtuelle et de Visual Studio .NET avec le .NET Framework (ou le .NET Compact Framework pour les appareils mobiles). D'une part, cela permet une plus grande portabilité de l'exécutable car la couche supplémentaire le compile au moment de l'exécution pour la plate-forme sur laquelle il se trouve (la couche sait dialoguer avec une multitude de plate-formes), d'où son nom chez Microsoft d'exécutable portable (PE). Il n'est plus en langage machine mais en CIL (Common Intermediate Language) ou MSIL chez Microsoft (MicroSoft Intermediate Language). D'autre part, la couche supplémentaire contrôle et gère toute l'exécution du programme, sécurise la mémoire avec le ramasse-miette (Garbage Collector) et j'en passe.
Pour infos supplémentaires, il existe un poster en .pdf de Microsoft qui récapitule bien tout ça : http://www.microsoft.com/france/vstudio/evaluez/posters.asp, intitulé "Services Web XML utilisant Microsoft .NET"

Voilà ! Je n'ai malheureusement pas la science infuse, donc je ne prétends pas qu'il faut prendre ces informations pour argent comptant ! C'est du moins ce que j'ai compris et ça se tient.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hherry Messages postés 5 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 1 avril 2005
1 avril 2005 à 09:43
J'ai contacté le support Microsoft pour ma question de départ de cette discussion. A priori, il n'existe pas d'indicateur. Le seul moyen d'avoir un code entièrement managé avec l'option "Utiliser les extensions managées" (/clr) en C++ .NET est d'ajouter l'option __gc devant chaque classe et l'option #pragma managed devant chaque fonction s'il y en a.

J'espère que ça aidera ceux que cette discussion a intéressés.
0
Rejoignez-nous