本帖最后由 kyra 于 2024-5-14 16:00 编辑
用C#调用fortran的dll,传递的参数只有一个字符串,但就是死活调用不起来,有哪个大神知道这是怎么回事吗fortran:
[Fortran] 纯文本查看 复制代码 subroutine mainsolve(projectname)
!DEC$ATTRIBUTES DLLEXPORT :: mainsolve
!DEC$ ATTRIBUTES ALIAS:'mainsolve'::mainsolve
use, intrinsic :: ISO_C_BINDING
implicit none
character*16 :: projectname
...
end subroutine
C#:
[C#] 纯文本查看 复制代码 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace cstest
{
class FortranMethod
{
[DllImport("softplatdll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void mainsolve(ref string a);
static void Main(string[] args)
{
string a = "try";
mainsolve(ref a);
}
}
}
|