Visual Studio и Фортран работают вместе? - PullRequest
10 голосов
/ 11 апреля 2011

Я недавно начал работать над проектом, который в основном представляет собой графический интерфейс для консольного приложения FORTRAN, которое выполняет серию симуляций для набора данных.

Что я хочу сделать, так это уметь модифицировать этот код FORTRAN и скомпилировать его в виде .dll, чтобы я мог передавать ему данные напрямую через импорт DLL.

Итак, мне было интересно, можете ли вы создать проект FORTRAN в Visual Studio 2010? Как быть в состоянии скомпилировать и отладить код?

И есть ли какие-либо негативы, связанные с прямыми вызовами скомпилированного файла .TRTRAN .dll? Такие как ограниченные типы данных параметров / возвращаемые типы данных?

Спасибо, Алекс.

1 Ответ

9 голосов
/ 12 апреля 2011

Итак, мне было интересно, можете ли вы создать проект FORTRAN в Visual Studio 2010? Как быть в состоянии скомпилировать и отладить код?

Да, вы можете. Но я думаю, что вам нужно купить коммерческий компилятор с интеграцией в VS.

Я знаю как минимум 3 варианта. Intel® Fortran Composer и PGI Visual Fortran® может создавать собственный код, а Silverfrost FTN95 может создавать сборки .NET (он поддерживает .NET 4.0).

И есть ли какие-либо недостатки, связанные с прямыми вызовами скомпилированного файла .TRTRAN .dll? Такие как ограниченные типы данных параметров / возвращаемые типы данных?

Но если у вас уже есть консольное приложение, я рекомендую оставить его как есть. Не создавайте DLL, просто напишите свое приложение с графическим интерфейсом как своего рода интерфейс для своей консоли. Ваш интерфейс GUI должен уметь генерировать входные файлы и анализировать выходные файлы.

С моей точки зрения, этот путь гораздо более гибкий. В будущем вы можете легко использовать свой консольный сервер, например, в кластере * nix. Или некоторые опытные пользователи могут использовать скрипты вокруг консоли ...

Вы также можете предоставить пользователю возможность отправить этот сгенерированный входной файл на серверную часть консоли (создание нового процесса) из приложения с графическим интерфейсом. Приложение с графическим интерфейсом будет ждать завершения процесса и затем анализировать вывод. Но такая тесная интеграция back-end и front-end не является необходимой.

...