Compaq Visual Fortran 6.5生成lib静态库详细方法:
- 打开Compaq Visual Fortran,新建Fortran Static Library工程,命名为ForLib;
- 往工程中添加文件Fortran Free Format Source File,命名自定;
- 文件内添加代码(示例):
SUBROUTINE FUNA (x [REFERENCE])
INTEGER*4 x
x = x + 1
END
INTEGER*2 FUNCTION FUNB (y [VALUE])
INTEGER*2 y
FUNB = y + 3
END
- 往工程中添加文件ForLib.def,用于显性析出接口函数,文件内容如下:
LIBRARY ForLib
EXPORTS
FUNA @ 1
FUNB @ 2
注:@符号之前为接口函数名,之后为函数序号。
- 保存所有文件,编译工程,生成ForLib.lib静态库文件。
使用时需注意:
- Fortran生成的接口函数名一律是大写;
- 在C++中使用时需要添加extern “C”;
- 在Windows中使用需要添加WINAPI宏;
使用示例如下:
extern "C"
{
extern void WINAPI FSUB(long &x);
extern int WINAPI FFUNC(int y);
}
long x = 66;
FSUB(x);
int a = 5;
int b = FFUNC(a);
注:执行后x=67, b=8;