试图从视觉C中调用Intel Visual Fortran函数



我有两个项目:我的解决方案中的CPartFortranPartFortranPart取决于CPart,后来包含main功能。这是main.c

的代码
#include <stdio.h>
extern int __stdcall FORTRAN_ADD(int *A, int *B);
int main()
{
    int a = 3;
    int b = 4;
    int c = FORTRAN_ADD(&a, &b);
    printf("%in", c);
    return 0;
}

这是我的fortran模块的代码

module FORTRAN_UTILS
implicit none
contains
integer*4 function fortran_add(a, b) result(c)
implicit none
integer*4, intent(in) :: a, b
c = a + b
end function fortran_add
end module FORTRAN_UTILS

编译了Fortran后,我将获得文件FortranPart.lib。在CPart项目依赖项中,我将其添加为外部库。当我尝试编译和运行CPart时,我会得到以下

Error   LNK2019 unresolved external symbol _FORTRAN_ADD@8 referenced in function _main  CPart   c:Userssashadocumentsvisual studio 2015ProjectsMSCourseMSCoursemain.obj 1   

P.S。我需要主要程序在C,而不是C 。

更多的研究带给我这个页面https://software.intel.com/ru-ru/node/678422

我更改了代码,现在正在工作。

subroutine fortran_add(a, b, r) bind(c)
    use, intrinsic :: iso_c_binding
    implicit none
    integer (c_int), value :: a, b
    integer (c_int), intent(out) :: r
    r = a + b
    end subroutine fortran_add

main.c

#include <stdio.h>
void fortran_add(int a, int b, int *r);
int main()
{
    int a = 3;
    int b = 4;
    int c;
    fortran_add(a, b, &c);
    printf("%in", c);
    scanf_s("");
    return 0;
}

相关内容

  • 没有找到相关文章

最新更新