Wywoływanie kodu 32-bitowego z procesu 64-bitowego

Mam aplikację, którą próbujemy przenieść na 64-bitowy z 32-bitowego. To .NET, skompilowany przy użyciu flag x64. Mamy jednak dużą liczbę bibliotek DLL napisanych w FORTRAN 90 skompilowanych dla 32-bitowych. Funkcje w bibliotekach DLL FORTRAN są dość proste: umieszczasz dane, wyciągasz dane; żadnego stanu. Nie spędzamy też tam zbyt wiele czasu, w sumie może 3%, ale logika obliczeń, którą wykonuje, jest nieoceniona.

Czy mogę w jakiś sposób wywołać 32-bitowe biblioteki DLL z kodu 64-bitowego? MSDN sugeruje, że nie mogę, kropka. Zrobiłem kilka prostych hacków i zweryfikowałem to. Wszystko rzuca niepoprawny wyjątek punktu wejścia. Jedynym możliwym rozwiązaniem, jakie do tej pory znalazłem, jest utworzenie wrapperów COM + dla wszystkich 32-bitowych funkcji DLL i wywołanie COM z procesu 64-bitowego. To wydaje się dość bolesne. Możemy również uruchomić proces w emulacji WoW, ale wtedy pułap pamięci nie zostanie zwiększony, ograniczając się do około 1.6 gb.

Czy istnieje inny sposób wywołania 32-bitowych bibliotek DLL z 64-bitowego procesu CLR?

questionAnswers(3)

yourAnswerToTheQuestion