Ich verwende einen bestimmten Befehl in meinem C#-Code, der gut funktioniert. Es wird jedoch gesagt, dass es sich in "unmanaged" Code falsch verhält.
Was ist verwalteter oder nicht verwalteter Code?
Ich verwende einen bestimmten Befehl in meinem C#-Code, der gut funktioniert. Es wird jedoch gesagt, dass es sich in "unmanaged" Code falsch verhält.
Was ist verwalteter oder nicht verwalteter Code?
Diese ist ein guter Artikel zu diesem Thema.
Zusammengefasst,
Ein Anwendungsprogramm, das innerhalb einer Runtime Engine ausgeführt wird die auf demselben Rechner installiert ist. Die Anwendung kann ohne sie nicht ausgeführt werden. Die Laufzeitumgebung stellt die allgemeine Bibliothek von Software Routinen, die das Programm verwendet, und übernimmt in der Regel die Speicherverwaltung verwaltung. Sie kann auch eine Just-in-Time-Konvertierung (JIT) von Quellcode in ausführbaren Code oder von einer Zwischensprache in ausführbarem Code. Java, Visual Basic und die Common Language Runtime von .NET (CLR) sind Beispiele für Laufzeit-Engines. ( Mehr lesen )
Ein ausführbares Programm, das selbständig läuft. Gestartet vom Betriebssystem Betriebssystem gestartet, ruft das Programm die Softwareroutinen des Betriebssystems auf und nutzt sie. Betriebssystems auf, benötigt aber kein anderes Softwaresystem, um verwendet zu werden. verwendet werden. Assembler-Programme, die in Maschinensprache assembliert wurden Maschinensprache assembliert wurden, und C/C++-Programme, die in Maschinensprache für ein bestimmte Plattform kompiliert wurden, sind Beispiele für nicht verwalteten Code.( Mehr lesen )
@H_wardak Was verstehen Sie unter "Hacken"? Das ist ein sehr allgemeiner Begriff, das ist so, als würde man sagen, dass das Hacken von NORAD und das Hacken einiger Register dasselbe ist.
Ich habe einmal von Interviewer gefragt worden, können wir ausführen/schreiben unmanaged Code in C #? Kann mir jemand dabei helfen?
Hier ist ein Text von MSDN über unverwalteter Code .
Einige Bibliothekscodes müssen nicht verwalteten Code aufrufen (z. B. native Code-APIs, wie Win32). Da dies bedeutet, dass der Sicherheitsbereich für verwalteten Code verlassen wird, ist entsprechende Vorsicht geboten.
Hier finden Sie weitere ergänzende Erläuterungen zu Managed Code:
Für Ihr Problem:
Ich denke, es ist, weil NUnit Ihren Code für UnitTesting ausführen und möglicherweise einige Teil davon, die nicht verwaltet wird. Aber ich bin mir nicht sicher, also nehmen Sie dies nicht für Gold. Ich bin sicher, dass jemand in der Lage sein wird, Ihnen mehr Informationen darüber zu geben. Hoffentlich hilft es!
Ich weiß die Mühe, die Sie sich mit Ihrer Antwort gemacht haben, zu schätzen, aber Leute, die nicht wissen, was "verwalteter Code" ist, werden Schwierigkeiten haben, zu verstehen, was Sie in Ihrer Antwort meinen: Sie werden es nicht wissen: "Bibliothekscode", "nicht verwalteter Code", "native Code-API", CLR, die Grundlage des .net-Frameworks, IL, CLI-Ausführungsumgebung usw. usw.
Wenn Sie an Folgendes denken unverwaltet denken Sie an maschinenspezifischen Code auf Maschinenebene. Wie x86-Assemblersprache. Nicht verwalteter (nativer) Code wird so kompiliert und gelinkt, dass er direkt auf dem Prozessor läuft, für den er entwickelt wurde, wobei alle Betriebssysteme vorerst ausgeklammert werden. Er ist nicht portabel, aber er ist schnell. Sehr einfacher, abgespeckter Code.
Verwaltet Code ist alles von Java bis zum alten Interpretive BASIC, oder alles, was unter .NET läuft. Verwalteter Code wird in der Regel zu einer Zwischenstufe von P-Code oder Bytecode-Anweisungen kompiliert. Dabei handelt es sich nicht um maschinenspezifische Anweisungen, auch wenn sie der Assemblersprache ähnlich sehen. Verwalteter Code isoliert das Programm von der Maschine, auf der es läuft, und schafft eine sichere Grenze, in der der gesamte Speicher indirekt zugewiesen wird, und im Allgemeinen haben Sie keinen direkten Zugriff auf Maschinenressourcen wie Ports, Speicheradressraum, den Stack usw. Die Idee ist, in einer sichereren Umgebung zu arbeiten.
Um z. B. eine verwaltete Variable in eine nicht verwaltete Variable umzuwandeln, müssen Sie das eigentliche Objekt erreichen. Es ist wahrscheinlich in eine zusätzliche Verpackung eingewickelt oder verpackt. Nicht verwaltete Variablen (wie z. B. ein "int") benötigen auf einem 32-Bit-Rechner genau 4 Byte. Es gibt keinen Overhead oder zusätzliche Verpackung. Der Prozess des Übergangs von verwaltetem zu nicht verwaltetem Code - und wieder zurück - wird als " Einmarschieren ". Es erlaubt Ihren Programmen, die Grenze zu überschreiten.
Verwaltet Code ist das, was die Compiler von C#.Net, VB.Net, F#.Net usw. erzeugen. Er läuft auf der CLR, die unter anderem Dienste wie Garbage Collection, Referenzprüfung und vieles mehr bietet. Stellen Sie sich also vor, dass mein Code von der CLR verwaltet wird.
Andererseits, unverwaltet Code wird direkt in Maschinencode kompiliert. Er wird nicht von der CLR verwaltet.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
1 Stimmen
Siehe auch: nativen, Maschinen- und Assembler-Code? y verwalteter vs. nicht verwalteter Code, Speicher und Größe? y "verwaltet vs. nicht verwaltet 1" y nativen und verwalteten Code? y "verwaltet" vs. "nicht verwaltet 2" y Was ist verwalteter Code?