【发布时间】:2013-12-19 14:30:46
【问题描述】:
我习惯使用下面的语法
subroutine CalcA(A,N)
!DEC$ ATTRIBUTES DLLEXPORT :: CALCA
!DEC$ ATTRIBUTES ALIAS:'CalcA' :: CalcA
IMPLICIT NONE
...
end subroutine CalcA
在 .dll 中生成导出函数
所以现在我正在使用以下代码尝试新的ISO_C_BINDING
subroutine CalcA(A,N) BIND(C, NAME="CalcA")
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
...
end subroutine CalcA
但是没有创建导出函数
那么我在这里遗漏了什么?新的iso_c_binding 将如何替换已弃用的!DEC$ ATTRIBUTE DLLEXPORT 声明?
PS。我通过 VS2010 在 Win7-64 平台上使用 Intel Fortran XE 2013。
【问题讨论】:
-
我会在英特尔支持论坛上提问。
-
这里一定有人知道..我希望。
-
ISO_C_BINDING 只是没有做你希望它做的事情。它添加了几个预定义的常量和过程,可帮助您与 C 代码进行互操作。它不会自动导出函数,您仍然必须使用 DLLEXPORT 属性。
-
我明白了。把它放在答案中,我会奖励它。谢谢。
-
我没有说没人会知道我只是说我会在供应商的官方支持论坛上询问,仅此而已。否则为什么要支付支持费用?
标签: interop fortran fortran-iso-c-binding intel-fortran