主题:关于Intel Fortran 9.1生成的DLL文件之命名
我新建了一个工程Fsubroutines(模板为Dynamic-link Library),
在Build Solution后, 在Debug目录下可以得到dll文件, 其文件名为fsubroutines.dll(均为小写)
在这个目录中还可得到的静态链接库、目标文件Fsubroutines.lib、fsubroutines.obj(文件名与工程名一致)
编译环境:
Windows xp sp3
Visual Studio 2005 SP1 Professional Edition(EN)
Intel Fortran Compiler 9.1
但是我以前在
Windows 7 旗舰版
Visual Studio 2008 SP1 Professional Edition(EN)
Intel Fortran Compiler Professional Edition 11.1.060
这种环境下编译, 所得各文件名均与工程名一致
那么,我想问的是在Intel Fortran Compiler 9.1 中的情况是正常的么?是否可以设置所得dll文件名与工程名一致?
注: (1)我的目的是要在C语言中调用DLL文件
调用方式为:HINSTANCE hLibrary=LoadLibrary("D:\\Dll\\fsubroutines.dll");
当然我发现在这里fsubroutines.dll大小写均可(设置Use Multi-Byte Character Set)
(2)将Generate Manifest设置为No后,dll文件名与工程名一致
以下为源码Fsubroutines.f90
INTEGER*4 FUNCTION Fact (n)
!DEC$ ATTRIBUTES DLLEXPORT,STDCALL,ALIAS:'_FACT@4'::Fact
INTEGER*4 n [VALUE]
INTEGER*4 i, amt
amt = 1
DO i = 1, n
amt = amt * i
END DO
Fact = amt
write(*,*)"Mixed calls succeed!"
END FUNCTION Fact
SUBROUTINE Pythagoras (a, b, c)
!DEC$ ATTRIBUTES DLLEXPORT,STDCALL,ALIAS:'_PYTHAGORAS@12'::Pythagoras
REAL*4 a [VALUE]
REAL*4 b [VALUE]
REAL*4 c [REFERENCE]
c = SQRT (a * a + b * b)
END SUBROUTINE Pythagoras
在Build Solution后, 在Debug目录下可以得到dll文件, 其文件名为fsubroutines.dll(均为小写)
在这个目录中还可得到的静态链接库、目标文件Fsubroutines.lib、fsubroutines.obj(文件名与工程名一致)
编译环境:
Windows xp sp3
Visual Studio 2005 SP1 Professional Edition(EN)
Intel Fortran Compiler 9.1
但是我以前在
Windows 7 旗舰版
Visual Studio 2008 SP1 Professional Edition(EN)
Intel Fortran Compiler Professional Edition 11.1.060
这种环境下编译, 所得各文件名均与工程名一致
那么,我想问的是在Intel Fortran Compiler 9.1 中的情况是正常的么?是否可以设置所得dll文件名与工程名一致?
注: (1)我的目的是要在C语言中调用DLL文件
调用方式为:HINSTANCE hLibrary=LoadLibrary("D:\\Dll\\fsubroutines.dll");
当然我发现在这里fsubroutines.dll大小写均可(设置Use Multi-Byte Character Set)
(2)将Generate Manifest设置为No后,dll文件名与工程名一致
以下为源码Fsubroutines.f90
INTEGER*4 FUNCTION Fact (n)
!DEC$ ATTRIBUTES DLLEXPORT,STDCALL,ALIAS:'_FACT@4'::Fact
INTEGER*4 n [VALUE]
INTEGER*4 i, amt
amt = 1
DO i = 1, n
amt = amt * i
END DO
Fact = amt
write(*,*)"Mixed calls succeed!"
END FUNCTION Fact
SUBROUTINE Pythagoras (a, b, c)
!DEC$ ATTRIBUTES DLLEXPORT,STDCALL,ALIAS:'_PYTHAGORAS@12'::Pythagoras
REAL*4 a [VALUE]
REAL*4 b [VALUE]
REAL*4 c [REFERENCE]
c = SQRT (a * a + b * b)
END SUBROUTINE Pythagoras