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