Aufrufen von 32-Bit-Code aus dem 64-Bit-Prozess

Ich habe eine Anwendung, die wir versuchen, von 32-Bit auf 64-Bit zu migrieren. Es ist .NET, das mit den x64-Flags kompiliert wurde. Wir haben jedoch eine große Anzahl von DLLs in FORTRAN 90 geschrieben, die für 32-Bit kompiliert wurden. Die Funktionen in den FORTRAN-DLLs sind recht einfach: Sie setzen Daten ein, Sie ziehen Daten heraus; Kein Zustand jeglicher Art. Wir verbringen dort auch nicht viel Zeit, insgesamt vielleicht 3%, aber die Berechnungslogik, die sie durchführt, ist von unschätzbarem Wert.

Kann ich die 32-Bit-DLLs irgendwie aus 64-Bit-Code aufrufen? MSDN schlägt vor, dass ich nicht kann, Punkt. Ich habe ein paar einfache Hacks gemacht und das überprüft. Alles löst eine ungültige Einstiegspunktausnahme aus. Die einzige mögliche Lösung, die ich bisher gefunden habe, besteht darin, COM + -Umhüllungen für alle 32-Bit-DLL-Funktionen zu erstellen und COM über den 64-Bit-Prozess aufzurufen. Das scheint ein ziemlicher Kopfschmerz zu sein. Wir können den Prozess auch in der WoW-Emulation ausführen, aber dann würde die Speicherobergrenze nicht erhöht und liegt bei 1,6 GB.

Gibt es eine andere Möglichkeit, die 32-Bit-DLLs von einem 64-Bit-CLR-Prozess aufzurufen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage