ここで間違っていることを誰かが指摘できますか?fortran77 dllからcへの実際の値を返す#
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);
}
}
}
私は戻って、彼らがしている..after C#メインPROGにDBB DCCの値を取得したいですFORTRAN 77サブルーチンによって処理されます。
P.S.私はFortran 77を使ってINTENT(out)を使用することはできません。 事前に感謝します。
を進めています。 – Shoban
エラーメッセージは何ですか? – VVS
THR値が同じまま...エラーのMSGでない DBB = 7 DCC = 9つの 期待値は DBB = 6.5 DCC = 7.5 –