Fortran Coder

标题: C++调用fortran编译静态库,x86,x64条件编译 [打印本页]

作者: ksfengjia    时间: 2018-10-26 15:32
标题: C++调用fortran编译静态库,x86,x64条件编译
环境vs2015+ivf2017
用fortran做了个水物性库,想在c++环境下调用。
vs2015下,x86使用时C++调用名:_waterprop_pt
                x64使用时C++调用名:waterprop_pt

问题:不改变C++头文件的情况下,用什么样的编译命令能够条件编译x86和x64的静态库?

下面是原有的代码,仅能实现x64调用,x86调用失败。
[Fortran] 纯文本查看 复制代码

    FUNCTION waterprop_pt(pin, tin, ifn) RESULT(value)

    ! static lib statement

    !DEC$ IF DEFINED(_X86_)

    !DEC$ Attributes C, Dllexport, Alias : '_waterprop_pt'::waterprop_pt

    !DEC$ ELSE

    !DEC$ Attributes C, Dllexport, Alias : 'waterprop_pt'::waterprop_pt

    !DEC$ ENDIF



    END  FUNCTION waterprop_pt




作者: pasuka    时间: 2018-10-26 22:23
1、Fortran代码这边为啥不用ISO_C_BINDING呢?
2、32和64位的C++接口为啥不能统一呢?
作者: vvt    时间: 2018-10-26 22:24
ISO_C_Binding 可以统一32位和64位接口。不需要写 #if 条件编译。

FUNCTION waterprop_pt(pin, tin, ifn) Bind( C , Name="waterprop_pt") RESULT(value)





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2