C++ oder Managed C++?



  • Hallo zusammen,

    wenn ich mit dem Visual Studio 2003 eine Windows Forms - Anwendung für C++ erstelle und in dieser Anwendung die Klassen des .NET-Frameworks ganz normal nutze wie in C# auch, erhalte ich dann nach der Kompilierung IL-Code oder eine ganz normale native exe-Datei? Entschuldigt die blöde Frage aber ich konnte bisher keine eindeutige Antwort darauf finden.
    IL-Code wird doch nur erstellt, wenn ich die "Managed extensions" verwende, was bei mir ja momentan nicht der Fall ist...?!? 😕

    Vielen Dank!



  • Nein, es wird immer IL-Code erzeugt, wenn du irgendwas .NET-mäßiges machst.



  • Vielen Dank für Deine Antwort. Ich kann die erstellte exe aber nicht mit einem Obfuscator deassemblieren, da bekomme ich die Meldung

    Das nicht überprüfbare Image "Test.exe" kann nicht ausgeführt werden.

    Was hat das zu bedeuten? Irgendwie muss sich der Code ja dann von "normalem" IL-Code, der beispielsweise mit C# erstellt wurde, unterscheiden. Meine C#-Programme kann der Obfuscator ohne Probleme deassemblieren.



  • Das muss ganz normaler IL code sein, evtl. brauchst du einen anderen Obfuscator weil der Managed C++ Compiler einen anderen IL Code erstellt als der C# Compiler. Sobald du irgendwas mit .NET machst ist es keine normale .exe mehr und immer von .NET (Ok Mono gibt´s ja auch noch) abhängig.

    Der sollte das alles können:
    http://www.remotesoft.com/salamander/obfuscator.html



  • Ahh, ich seh grad, der ist nur Shareware. Wenn du die Vollversion willst wird´s teuer. Naja, probier ihn aus.



  • Das Tool ist echt gut, vielen Dank. Der kann mir jetzt sogar das File deassemblieren.
    Also gibt es keinerlei Möglichkeit, zwar die Klassen des .net-Frameworks zu verwenden, aber das ganze dann anschließend in nativen Code umzuwandeln, oder? Ich würde ja gerne auf die Plattformunabhängigkeit verzichten, darum geht es mir gar nicht. Ich würde nur gerne die .net-Klassen verwenden.



  • Maximilian Fink schrieb:

    Das muss ganz normaler IL code sein, evtl. brauchst du einen anderen Obfuscator weil der Managed C++ Compiler einen anderen IL Code erstellt als der C# Compiler.

    Ne, es ist doch gerade der Sinn und Zweck der CIL, dass sie für einen einheitlichen Zwischencode sorgt, egal in welcher .NET-Sprache das Programm entwickelt wurde.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • bherd schrieb:

    Also gibt es keinerlei Möglichkeit, zwar die Klassen des .net-Frameworks zu verwenden, aber das ganze dann anschließend in nativen Code umzuwandeln, oder?

    Technisch möglich, aber nicht sinnvoll.

    Warum willst du das denn?


Anmelden zum Antworten