gpt4 book ai didi

c# - 将实际值从 fortran77 dll 返回到 c#

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:08 26 4
gpt4 key购买 nike

有人可以指出我在这里做错了什么吗?

FORTRAN 77 dll 代码

*$pragma aux DON "DON" export parm(value*8,value*8)


SUBROUTINE DON(DAA,DBB,DCC)
REAL*8, DAA,DBB,DCC
DBB=DAA+1
DCC=DBB+1
RETURN
END

C#代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Runtime.InteropServices;

using System.Diagnostics;

namespace pDON
{
class Program
{

[DllImport("DON.dll",
CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall)]
public static extern void DON(
[MarshalAs(UnmanagedType.R8)] double DAA,
[MarshalAs(UnmanagedType.R8)] double DBB,
[MarshalAs(UnmanagedType.R8)] double DCC
);

static void Main(string[] args)
{
//double TIME = 100.0;
double DAA = 5.5;
double DBB = 7;
double DCC = 9;
//START( ENERIN, VAL1);
DON(DAA, DBB, DCC);

Console.Write("val1 = " + DBB);
Console.Write("val2 = " + DCC);
Debug.WriteLine("VAR = " + DBB.ToString());
Console.Write("Press any key to exit");
Console.ReadKey(false);
}

}
}

我想在通过 FORTRAN 77 子例程处理它们之后,将 DBB DCC 的值返回给 C# 主程序。

附言:我不能使用 INTENT(out),因为我使用的是 Fortran 77。非常感谢。

最佳答案

谢谢大家的建议

输入参数应该按值传递,输出参数...按引用传递所以我将辅助编译指示更改为""*$pragma aux DON "DON"export parm(value*8, reference, reference)""它现在正在工作

再次感谢

关于c# - 将实际值从 fortran77 dll 返回到 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1365958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com