J'ai quelques questions à propos de C++/CLR C++ Interop (mélangeant essentiellement du code non géré et géré C++).C++/CLR (C++ Interop) Questions de base :)
Si je crée une application avec C++/CLR et j'écris non géré et le code managé, par exemple:
int main(int argc, char*argv[]) { int a = 30; int* a_ptr = &a; std::cout << a_ptr << std::endl; Console::WriteLine("This is managed code"); }
Comme la 4ème ligne est géré code .NET, il sera à travers le CLR. Mais les trois premières lignes passeront-elles aussi par le CLR ou seront-elles traitées séparément? Est-ce que cela réduira les performances si j'écris uniquement du code non géré C++ dans un projet CLR?
Est-ce que le C++/projet CLR changer quoi que ce soit dans le langage C++, par exemple les primitives ou des trucs comme ça?
Comment ça marche? Comment le CLR est-il appelé s'il détecte qu'une commande l'utilise ... ou est-ce que tout passe par là?
Une question par question s'il vous plaît. Et un titre significatif. –
@qxz: "sth" est l'abréviation de "something", pas "stuff". –
Il passe par le compilateur juste-à-temps. Ce qui convertit le MSIL que le compilateur a généré de votre fonction main() en code machine. Rien de radicalement différent de ce qu'un compilateur normal fait, ils utilisent tous un frontal qui analyse le code et le transforme en IL et un back-end qui génère du code machine. Comparez avec LLVM. La seule différence est que cette étape de traduction IL se produit à l'exécution au lieu de la compilation. –