Wir haben einen Microsoft.Win32-Namespace, aber ist es garantiert in 64-Bit-Windows-Umgebungen zu arbeiten? Gibt es eine entsprechende Notwendigkeit, solche Definitionen für eine 64-Bit-Situation zu haben?Warum gibt es keinen Microsoft.Win64-Namespace?
Antwort
.NET-Anwendungen werden standardmäßig auf dem Framework ausgeführt, das auf die Architektur des Betriebssystems ausgerichtet ist. Wenn Sie also 32-Bit-Windows ausführen, ist das auf der Maschine installierte .NET-Framework das 32-Bit-Framework. Alle .NET-Anwendungen, die auf diesem Framework ausgeführt werden, werden dann in "32 Bit" ausgeführt.
Wenn Sie 64-Bit-Windows ausführen, dann führen Sie ein 64-Bit-Framework aus, aber die IL, die auf dem Framework ausgeführt wird, unterscheidet sich (standardmäßig) nicht von der 32-Bit-IL.
Kurz gesagt: Es spielt keine Rolle, ob Sie 32-Bit oder 64-Bit-Windows ausführen, da das .NET-Framework das vom C#/VB-Code abstrahiert.
Das Microsoft.Win32-Framework bezieht sich auf die systemeigenen APIs in Windows. Abgesehen von dem wirklich schlechten Namen, den Microsoft ihm gegeben hat, hat es nichts mit 32 Bit gegenüber 64 Bit Windows zu tun.
Im Übrigen gibt es einige Dinge, die Sie mit der 64-Bit-Version des Frameworks nicht tun können: Zum Beispiel gibt es im 64-Bit-Framework keinen JET-Datenbanktreiber.
Aus dem gleichen Grund haben wir 64-Bit-Binärdateien im Ordner system32
in 64-Bit-Windows gespeichert.
Grundsätzlich ist das, weil Dinge in nicht für 32-Bit-Windows spezifisch sind. Warum sollten sie der Portabilität ohne Vorteile schaden?
"Win32" ist der Name der Plattform (d. H. Der Kern-API-Satz), unabhängig von der tatsächlichen Bissigkeit des Betriebssystems. Mit anderen Worten, machen Sie sich keine Sorgen :)
- 1. Warum gibt es keinen Kompilierungsfehler?
- 2. Warum gibt es keinen boost :: copy_on_write_ptr?
- 3. Warum gibt es keinen 'channel originate' Anruf?
- 4. Warum gibt es hier keinen erreichbaren Code?
- 5. Warum gibt es keinen genauen C++ - Decompiler?
- 6. Warum gibt es keinen std :: copy_if Algorithmus?
- 7. Haskell: Warum gibt es keinen Typunterschied (und warum kompiliert er)?
- 8. Warum gibt es keinen E_NOTICE Fehler beim ersten Anruf?
- 9. Warum gibt es keinen Blick! Funktion für clojure transiente Vektoren?
- 10. Warum gibt es keinen Varchar-Datentyp in DynamicReports
- 11. Warum gibt es keinen Reservierungskonstruktor für std :: string?
- 12. Warum java.util.Set enthält keinen Wert Getter? Gibt es Alternativen dazu?
- 13. Warum gibt es in F # keinen geschützten Zugriffsmodifikator?
- 14. Warum gibt es keinen Cursor-Adapter für RecyclerView?
- 15. Warum gibt es keinen symmetrischen Unterschied für Collections.Counter?
- 16. Warum gibt es keinen List-Konstruktor, der Varargs verwendet?
- 17. Warum gibt es keinen ArrayList (T [] t) -Konstruktor?
- 18. warum gibt es keinen finden für Vektor in C++
- 19. Warum gibt es keinen AtomicBooleanArray-Datentyp in Java?
- 20. Warum gibt es keinen CSS-ähnlichen GUI-Ersteller
- 21. Warum gibt es keinen Operator [] für eine std :: list?
- 22. Warum gibt es keinen [] Operator für std :: shared_ptr?
- 23. Warum sagt Neo4J mir, dass es keinen Löffel gibt?
- 24. Warum gibt es keinen Autorelease-Pool, wenn ich performanceSelectorInBackground :?
- 25. Warum gibt es keinen Operator << für std :: unique_ptr?
- 26. Warum gibt es keinen ": n-ten-Klasse" Selektor im Standard?
- 27. Warum gibt es keinen Oracle Forms oder Reports Decompiler? (Technisch)
- 28. Warum gibt es keinen Funktionstry-Block für Lambda?
- 29. Warum gibt mein Code mir keinen Fehler?
- 30. Warum gibt mir Flask keinen interaktiven Debugger?
Große Antwort! Verfolgt jemand die 64-Bit-Unterschiede in .NET? --- Vielleicht ein Blog? – rasx
Keine, die ich gesehen habe. Das würde mich auch interessieren. – rein