2010-07-27 3 views
1

Après avoir parcouru Marshall l'extrait de code A obtenu l'idée que le marshaling est utilisé pour convertir la structure en octets et quelques autres convesrions similaires. Mais est-ce la seule utilisation de Marshall?Le mode Marshalling n'est-il utilisé que pour convertir la structure en octets et en vice-versa?

Et en passant par l'échantillon msdn je suis la ligne de floowing:

// Initialize unmanged memory to hold the struct. 
    IntPtr pnt = Marshal.AllocHGlobal(Marshal.SizeOf(p)); 

Et aussi de quelques autres sites que je suis les lignes follwing comme:

When you work with `unmanaged` code, you are `marshaling` data from your 
`managed app-domain` to the `unmanaged` realm. 

maintenant Qu'est-ce que Manged et UnManaged domaine ou managed et unmanaged code. En écrivant mon code Comment serai-je capable de distinguer ce qui est Managed et Qu'est-ce que unmanaged?

Je dois juste effacer mes principes fondamentaux avant d'aller de l'avant, Toute suggestion, doc ou soluce comme ma sincère grattitude.

Merci,
Subhen

Répondre

1

Le code managé est un code qui s'exécute à l'aide du CLR (Common Language Runtime) ...
Le code non géré est le code qui ne dépend PAS du CLR, pendant l'exécution, tel qu'un programme C.

Il ya un article wikipedia pour la plupart des sujets d'informatique là-bas ... Google est un ami de tout développeur.

+0

sur mon extrait de code (à partir de MSDN) il est dit // Initialiser la mémoire non masquée pour contenir la structure. IntPtr pnt = Marshal.AllocHGlobal (Marshal.SizeOf (p)); Ici, il initialise une mémoire non gérée IntPtr pnt, Cela signifie donc que IntPtr ne dépend pas de CLR pour exécuter – Simsons

+0

IntPtr = structure de pointeur entier. Il fait partie du CLR et son nom complet est 'System.IntPtr'. IntPtr est un type de valeur qui contient un entier qui est de la taille de l'adresse du système d'exploitation de l'environnement ... Ok, je suis extrêmement verbeux, désolé. – Warty

0

géré = .NET (CLR de Common Language Runtime)

non géré = natif

Utilisez 'mode mixte' ensembles, programmés en C++/CLR pour faire le pont deux royaumes ensemble.

Questions connexes