系统:Windows-7-64 位/Visual-Studio-2010/Intel-Visual-Fortran-11。
我正在创建 32 位可执行文件。
Fortran 例程声明
SUBROUTINE LA01BD(N,M,L,A,B,C,X,F,IA,IPRINT,IND,WK,IER)
!DEC$ ATTRIBUTES DLLEXPORT::LA01BD
!DEC$ ATTRIBUTES STDCALL,REFERENCE,ALIAS:"LA01BD"::LA01BD
use, intrinsic :: ISO_C_BINDING
C++ 函数签名声明
extern "C" {void __stdcall LA01BD(int *N, int *M, int *L, double *A, double *B, double *C, double *X, double *F, int *IA, int *IPRINT, int *IND, double *WK, int *IER); }
我使用 Visual Studio 2010 和 Intel Visual Fortran 编译器 11 从 fortran 代码创建了 dll。我检查了依赖 walker 中导出的符号,函数为“LA01BD”。
在我的 C++ 项目中使用相同的 dll(链接期间的 .lib 文件)时,出现以下链接器错误。
lpwrap.obj : error LNK2001: unresolved external symbol _LA01BD@52
我无法解决这个问题。后缀“@52”有什么作用?如何解决链接问题?
谢谢。