Visual Studio 2010调用Fortran生成的Dll(原创)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual Studio 2010调用Fortran生成的Dll
1、文件(File)-新建(New)-项目(Project)-Visual C++(Visual C++)-Win32(Win 32)-Win32
控制台程序(Win32 Console Application)。
名称为“VSuseFortran”。
2、“下一步”,生成“控制台应用程序”(Console application)。
注意,附加选项取消“预编译头”(Precompiled header),勾选“空项目”(Empty project)
3、添加新项“main.cpp”
4、在main.cpp中添加如下代码。
其中,extern"C"void_stdcall SUMDLL(int*a,int*b,int*c);为函数声明,用来让编译器可以认识Fortran函数。
需要注意的是,这里开始,所有的变量定义和使用方法均要符合C++的使用方式。
例如,Fortran默认的变量传递方式为内存地址传递,则在C++中,变量名为指针类型int *a,调用时,要采用取地址的形式&a。
//------------------ main.cpp -------------------
#include<iostream>
usingnamespace std;
extern"C"void_stdcall SUMDLL(int *a,int *b,int *c);
int main(char argc, char**argv)
{
int a,b,c;
a=2;
b=3;
c=0;
//
cout<<"----------------------"<<'\n';
cout<<"SumTest(): "<<'\n';
cout<<"----------------------"<<'\n';
SUMDLL(&a,&b,&c);
cout<<a<<"+"<<b<<"="<<c<<'\n';
return 0;
}
5、在VSuseFortran下新建lib文件夹,将Fortran生成的Sumdll.lib拷贝到该文件夹下;将Debug文件拷贝到VSuseFortran的Debug文件夹下(注意,是VSuseFortran\Debug路径,不是VSuseFortran\VSuseFortran\Debug路径)。
6、右击“usesimpledll”,选择“属性”(Properties)
9、选择“配置属性”(Configuration Properties),“连接器”(Linker),“输入”(Input),“附加依赖项”(Additional Dependencies),添加“Sumdll.lib”的绝对路径和文件名称。
11、完成后点击Build->Build Solution,生成解决方案。
“运行”,可得到如下结果:
注意:以上测试均为Debug版本,在提交时,需要改为Release版本。