如何在 C# 应用程序中使用 Fortran 文件
本文关键字:Fortran 文件 应用程序 | 更新日期: 2023-09-27 18:35:06
我有Intel® Parallel Studio XE,它为Visual Studio提供了一个Fortran编译器Microsoft(我使用的是2013 Ultimate版本)。是否可以在 C# 应用程序中执行 Fortran 文件,或者它必须是 C/C++ 应用程序?我该怎么做?
他们都不能使用 fortran,你必须创建一个 fortran 项目,你不能混合语言。一个可能的解决方案是创建一个DLL并将其与DLLImport接口,这可能有助于您:
https://sukhbinder.wordpress.com/2011/04/14/how-to-create-fortran-dll-in-visual-studio-with-intel-fortran-compiler/
有两个
选项可以从 C# 调用 Fortran。
1) 创建 Fortran 控制台应用程序 (EXE)。使用 Process.Start 从 C# 调用,并使用文件传递输入和输出。我建议从这种方法开始。
var startInfo = new ProcessStartInfo();
startInfo.FileName = "MyFortranApp.exe";
startInfo.Arguments = @"C:'temp'input_file.txt C:'temp'output_file.txt";
Process.Start(startInfo);
2)更高级的方法是创建一个Fortran DLL,并使用P/Invoke(DllImport)从C#调用。使用 DLL,所有输入和输出都在内存中传递。还可以使用回调将进度报告回 C# 调用代码。
public static class FortranLib
{
private const string _dllName = "FortranLib.dll";
[DllImport(_dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern void DoStuff([In] double[] vector, ref int n, [In, Out] double[,] matrix);
}
http://www.luckingtechnotes.com/calling-fortran-dll-from-csharp/http://www.luckingtechnotes.com/calling-fortran-from-c-monitoring-progress-using-callbacks/