2017-09-17 1 views

Antwort

0

Vermutlich haben Sie die Tatsache übersehen, dass Sie in C++ schreiben und es in MSIL-Assembly kompilieren und das als .net verwalteten Code ausführen können.

Gehen Sie zu sehen - in Microsoft Visual Studio für C++ gibt es einen Compiler-Schalter /clr:pure oder andere Flags (msdn: https://msdn.microsoft.com/library/k8d11d4s.aspx).

Wenn Sie diesen Modus verwenden, können Sie spezielle Markierungen verwenden, um zu definieren, dass bestimmte Klassen als CLR-verwaltete Klassen kompiliert werden sollen. Wenn Sie vorsichtig sind und alles richtig schreiben, gibt/clr: pure eine normale 100% -verwaltete Assembly aus. Ich bin versucht zu sagen "alles wie in C#", aber das ist nicht wahr, generierter Code wird anders sein, aber trotzdem wird alles funktionieren, Metadaten werden da sein, usw. ILSpy wird das dekompilieren, genau wie jede von C# generierte Assembly, VB.Net oder F #, aber wahrscheinlich wird der Code/names/etc ein bisschen mehr gemangelt.

Nebenbei bemerkt: Wenn Sie in einigen echten Decompiler wie Reflector investieren, können sie nehmen oft eine C# Montage und dekompilieren as-if-geschrieben-in-Managed-C++ und umgekehrt ..

Außerdem, wenn Sie egal "pure" msil, Sie können sogar nativen und verwalteten Code mischen. Die Hälfte des Codes in nativem C++, andere Hälfte in gemanagtem, achten Sie nur auf Zeiger und Verweise und Aufräumarbeiten, und der Compiler wird für Sie gerne eine gemischte Assembly ausgeben - hier habe ich keine Ahnung, ob ILSpy es schafft, Ihnen etwas zu zeigen. Wahrscheinlich zeigt es Ihnen den verwalteten Teil und zeigt den nativen Teil als dort, aber als nicht zerlegbar.

Schließlich ist es auch https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-build-a-multifile-assembly, die ILSpy wahrscheinlich auch unterstützt.

+0

thx !! Würdest du mir bitte ein Tutorial erzählen? – 0x24

Verwandte Themen