Как вызвать C # код из Фортран DLL - PullRequest
2 голосов
/ 06 августа 2009

В настоящее время у меня есть abc.dll, которая является Fortran DLL. Теперь я хочу вызвать код C # из abc.dll. Есть ли способ вызвать код C # из Fortran DLL?

спасибо Сагар

Ответы [ 2 ]

2 голосов
/ 06 августа 2009

Как правило, если ваша программа написана полностью в нативном коде (как я полагаю, была бы библиотека Фортран), вам необходимо вызвать метод, который был экспортирован (dllexport) из другого модуля нативного кода. В этом случае вам потребуется создать dll Managed C ++, который предоставляет собственный интерфейс и внутренне выполняет вызов в код C #.

Редактировать: Если хост-программа является управляемым кодом, и вам необходимо выполнить последовательность вызовов C # -> Fortran (native) -> C #, то делегаты в качестве неуправляемых указателей на функции могут использоваться в качестве ссылок в комментариях выше. Однако, если исполняемый файл не является управляемым кодом, вам нужно пойти по пути, который я упомянул.

0 голосов
/ 10 августа 2009

Компиляторы, поддерживающие последние возможности языка Фортрана (стандарт 2003), будут поддерживать C-взаимодействие Вы взаимодействуете с другим кодом через интерфейс C, используя модуль ISO_C_BINDING и конструкцию BIND. У большинства последних компиляторов это есть, это стандартно, и вы можете найти много документации (например, этот ), используя ключевое слово ISO_C_BINDING.

...