#visual-studio-2010 #.net-4.0 #fortran #dllimport
#visual-studio-2010 #.net-4.0 #fortran #dllimport
Вопрос:
Недавно я начал работать над проектом, который в основном представляет собой графический интерфейс для консольного приложения FORTRAN, которое запускает серию симуляций для набора данных.
Что я хочу сделать, так это иметь возможность изменять этот код на FORTRAN и компилировать его как .dll, чтобы я мог передавать в него данные напрямую через что-то вроде импорта DLL.
Итак, мне было интересно, можете ли вы настроить проект FORTRAN в Visual Studio 2010? Например, возможность компилировать и отлаживать код?
И есть ли какие-либо негативные моменты, связанные с прямыми вызовами скомпилированного файла FORTRAN .dll? Например, ограниченные типы данных параметров / возвращаемые типы данных?
Спасибо, Алекс.
Ответ №1:
Итак, мне было интересно, можете ли вы настроить проект FORTRAN в Visual Studio 2010? Например, возможность компилировать и отлаживать код?
Да, вы можете. Но я думаю, вам нужно купить коммерческий компилятор с интеграцией в VS.
Я знаю как минимум 3 варианта. Intel® Fortran Composer и PGI Visual Fortran® могут создавать машинный код, а Silverfrost FTN95 может создавать.СЕТЕВЫЕ сборки (поддерживает .NET 4.0).
И есть ли какие-либо негативные моменты, связанные с прямыми вызовами скомпилированного файла FORTRAN .dll? Например, ограниченные типы данных параметров / возвращаемые типы данных?
Но если у вас уже есть консольное приложение, я действительно рекомендую оставить его таким, какое оно есть. Не создавайте DLL, просто напишите свое приложение с графическим интерфейсом как своего рода интерфейс для серверной части вашей консоли. Ваш интерфейс с графическим интерфейсом должен иметь возможность генерировать входные файлы и анализировать выходные файлы.
С моей точки зрения, этот способ гораздо более гибкий. В будущем вы сможете легко использовать серверную часть консоли, например, в кластере * nix. Или некоторые опытные пользователи могут использовать сценарии вокруг серверной части консоли…
Вы также можете предоставить пользователю возможность отправлять этот сгенерированный входной файл в серверную часть консоли (создавая новый процесс) из вашего приложения с графическим интерфейсом. Приложение с графическим интерфейсом будет ждать завершения процесса, а затем анализировать выходные данные. Но в такой тесной интеграции серверной части и интерфейса нет необходимости.
Комментарии:
1. Входные файлы слишком сложны и громоздки, мы также хотим иметь возможность вводить несколько источников данных, которые тогда также должны были бы поддерживаться в консольном приложении. Мы также просто напишем расширение для нашего приложения с графическим интерфейсом, которое позволит создавать пакетные сценарии с использованием входных файлов.