我想将FORTRAN DLL导入Visual C#.虽然我已经使用函数完成了这项工作,但是当我想导入具有多个输出的子例程时会出现问题.这是一个简单的例子:
FORTRAN DLL:
Subroutine MySub(a,b,x,y)
!DEC$ ATTRIBUTES DLLEXPORT, STDCALL, ALIAS:'MySub' :: MySub
Implicit None
Integer, INTENT(IN) :: a,b
Integer, INTENT(OUT) :: x,y
y=a+b
x=2*a+3*b
End Subroutine MySub
Run Code Online (Sandbox Code Playgroud)
C#控制台应用:
using System;
using System.Runtime.InteropServices;
namespace AlReTest
{
class Program
{
[DllImport(@"D:\...\AltRetTest.dll", CallingConvention=CallingConvention.StdCall)]
public static extern int MySub(int a, int b, [Out] int x, [Out] int y);
static void Main(string[] args)
{
int a = 4;
int b = 3;
int x = 0;
int y = 0;
MySub(a, b, x, …Run Code Online (Sandbox Code Playgroud)