Hallo,
ich möchte eine Art Compilerswitch in meinen Code implementieren. Ganz konkret:
Wenn ich ein Programm im 32bit-Modus kompiliere, möchte ich Methode A aufrufen, wenn es der 64bit-Modus ist, dann Methode B o.ä.
Weiß jemand Rat? Danke.
Hört sich seltsam an, wofür brauchst du das?
Aber prinzipiell geht das ganz einfach mit dem Präprozessor.
As a man thinketh in his heart, so he is.
hallo,
du kannst zwei verschiedene Konfigurationen dafür in deiner Solution anlegen und pro Konfiguration kannst du andere Symbole für die bedingte Kompilierung anlegen. Die kannst du dann ganz normal im Code auswerten.
Die Frage ist nur warum? Ist des nen Interop Thema mit unmanaged Code?
Baka wa shinanakya naoranai.
Mein XING Profil.
Dank eurer Hinweise hab ich es hingekriegt. Also Präprozessordirektiven + "Conditional Compilation Symbols".
Ja, brauchen tu ich das Ganze, weil ich je nach OS zwei verschiedene DLLs einbinden muss, einmal die 32bit-Variante und ein anderes mal die 64bit-Variante.
man kann auch die dlls in unterverzeichnisse packen und je nachdem Environment.CurrentDirectory im Programm setzen, um so die richtige Dll-verion zur Laufzeit auszuwählen.
Interops lassen sich mit IntPtr auch oft so schreiben, dass sie für beide versionen gehen (IntPtr hat immer die größe eines Pointers)
zur Laufzeit kann man IntPtr.Size abfragen. Damit kann man oft eine Version für alle Fälle bauen.