У меня есть приложение, которое мы пытаемся перейти на 64-битную версию с 32-битной. Это .NET, скомпилированный с использованием флагов x64. Однако у нас есть большое количество DLL, написанных на FORTRAN 90, скомпилированных для 32-битной версии. Функции в библиотеках DLL FORTRAN довольно просты: вы вводите данные, вы извлекаете данные; никакого состояния любого рода. Мы также не проводим там много времени, в общей сложности может быть 3%, но логика вычислений, которую он выполняет, неоценима.
Могу ли я как-то вызвать 32-битные библиотеки DLL из 64-битного кода? MSDN предполагает, что я не могу, и точка. Я проделал простой взлом и проверил это. Все выдает исключение недопустимой точки входа. Единственное возможное решение, которое я нашел до сих пор, - это создать оболочки COM + для всех 32-битных функций DLL и вызвать COM из 64-битного процесса. Это похоже на головную боль. Мы также можем запустить процесс в эмуляции WoW, но тогда потолок памяти не увеличится и составит около 1,6 ГБ.
Есть ли другой способ вызвать 32-битные библиотеки DLL из 64-битного процесса CLR?