Wie man herausfindet, ob die eigene C# Anwendung als x86 oder x64 läuft


Thomas Wölfer
Thomas Wölfer

24. Januar 2009


Sofern man die "Platform Target" eines C# Projectes nicht explizit setzt, dann wird die Anwendung zur Laufzeit auf einer x86 Platform eine x86 Anwendung sein, und auf einer x64 Platform eine x64 Anwendung: Das ist praktisch, wenn man es nur mit managed Code zu tun hat, denn man bekommt die 64bit Variante quasi geschenkt.

Wenn man aber auch nativen Code hat muss man - je nachdem wie man die Anwendung baut - in Abhängigkeit der aktuellen Platform unterschiedliche DLLs laden. Also zum Beispiel die Calc32.dll für x86 und die Calc64.dll unter x64. Wie findet man aber nun heraus, ob man sich in einer x86 oder in einer x64 Umgebung befindet? MSDN läst sich zu diesem Thema nicht besonders aus; zumindest konnte ich nichts finden.

Allerdings liegt das vielleicht daran, das die Lösung mehr als einfach ist: Alles was man tun muss ist die Größe eines IntPtr anzusehen. Hat der Zeiger eine Größe von 8 Byte, dann befindet man sich in einer x64 Umgebung. (8 Byte mal 8 Bits => 64 bit).

Manche Dinge sind wirklich deutlich einfacher als man meinen sollte... :-)