小编use*_*090的帖子

从C#调用FORTRAN子例程

我想将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)

c# pinvoke fortran dllimport

5
推荐指数
1
解决办法
871
查看次数

标签 统计

c# ×1

dllimport ×1

fortran ×1

pinvoke ×1