Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Von einer 64-Bit Anwendung auf 32-Bit Assembly referenzieren
dennisspohr
myCSharp.de - Member

Avatar #avatar-2982.jpg


Dabei seit:
Beiträge: 487
Herkunft: Westerwald

Themenstarter:

Von einer 64-Bit Anwendung auf 32-Bit Assembly referenzieren

beantworten | zitieren | melden

Hallo zusammen,

ich habe bei meiner Hauptanwendung als Zielplattform "Any CPU" eingestellt. Diese wird also auf 32Bit-System als 32Bit und auf 64Bit-System als 64Bit ausgeführt.

Meine referenzierte Klassenbibliothek muss leider unter 32 Bit laufen. Diese greift auf meinen installierten Canon RAW Codex zu, welcher leider nur in 32Bit existiert.

Ist es möglich, mit meiner 64Bit-Anwendung auf meine 32Bit-Klassenbibliothek zuzugreifen?

Ich weiß, ich könnte meine Anwendung auch insgesamt auf 32Bit umstellen, würde aber aus verschiedenen Gründen (bsp. Perfomance) gerne bei 64Bit (bzw. Any CPU) bleiben.

Vielen Dank & Grüße
Dennis
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

in kurz: nein.
in lang: Dadurch, das die DLL in den Addressraum des Prozesses geladen wird und innerhalb des Prozesses alles (stack & co) mit 64 bit läuft, ist es nicht ohne weiteres möglich eine 32 bit DLL in einen 64 bit Prozess zu laden (z.B. funktioniert dann die Pointerarrithmetik nicht mehr weil die Dll davon ausgeht das der Adressraum immer in 32 Bit Schritten aufgeteilt ist). Du kannst höchstens einen separaten Prozess für die 32 Bit Dll´s erzeugen und dann per IPC auf diese Dll´s zugreifen. Oder aber du lässt das Projekt komplett in 32 Bit laufen.