目前我有abc.dll,这是fortran dll。现在我想从abc.dll调用C#代码。有没有办法从fortran dll调用C#代码?
感谢 Sagar的
答案 0 :(得分:2)
通常情况下,如果您的程序完全使用本机代码编写(因为我相信Fortran dll会是这样),您需要调用从另一个本机代码模块导出的方法(dllexport
)。在这种情况下,您将需要创建一个Managed C ++ dll,它公开一个本机接口,并在内部调用C#代码。
编辑:如果托管程序是托管代码,并且您需要执行C# - > Fortran(本机) - > C#调用序列,则委托作为非托管函数指针可以在上面的注释中用作链接。但是,如果可执行文件不是托管代码,则需要转到我提到的路径。
答案 1 :(得分:-1)
支持最新Fortran语言功能(2003标准)的编译器将支持C互操作。您可以使用ISO_C_BINDING
模块和BIND
构造通过其C接口与其他代码进行交互。最近的编译器有它,它是标准的,你可以通过谷歌的关键字ISO_C_BINDING找到很多文档(比如this one)。