Fortran+90与VB混合编程技术的研究与实现.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:7 大小:371KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Fortran+90与VB混合编程技术的研究与实现.pdf

Fortran+90与VB混合编程技术的研究与实现.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据90与VB混合编程技术的研究与实现其方法是将核心计算部分使用Fo栅190语言编写成动态链接库(D)『mⅡlicFortran呦90语言编写了相关DLL计算程序,将处理后的数据再返回VB程序,由VB程序将数据保存到MDB文science锄d‰hnolog)r要:介绍了Fo栅l当前,Fo舰n90语言在科学与工程计算领域得到广泛应用,其程序的运行速度和运行效率是任何其他可视化交互的应用软件,使F0胁n不同的形式。比如,在Fo舰n90生成的DLL中,每一个声明的过程均有一个别名,且随调用约定不同而略有李学哲,VB与F0rtra玎90之间的调用约定云,陈国新UniVers畸of白基于DLL方法实现Fort瑚90强大科学计算功能的深层开发建立了良好的基础。并通过实例对混合编程技术和方高级程序设计语言所无法比拟的【11。For呖n90语言具有强大的科学计算和数据处理能力,但在可视化界面设第21卷第4期2008年12月苏州科技学院学报(工程技术版)(En舀needng计上,相对其他可视化程序设计语言(如VB)来讲,界面设计的功能不强,因而不易设计和开发与用户进行90语言的应用受到很大限制。因此,目前在设计“高端计算”应用程序时,为既能发挥F0nran90语言高效的计算能力,又能使应用程序的交互界面友好,往往采用了混合编程来实现。Ubrary,DIJL)文件,软件的可视化界面部分再由其他可视化程序设计语言来实现,通过可视化界面上的某些命令控件来调用动态链接库中的F0m龃90过程完成有关计算任务。本文选用了Vi叭alB硒ic(以下简称VB)设计软件可视化用户界面,并调用F.or咖n90动态链接库以实现混合编程。目前,有关Fortran90混合编程的参考文献较少,已看到的文献介绍得都是关于整型和实型两种简单数据类型接口混合编程技术闭,对于结构体变量、结构体数组及字符串等复杂数据类型接口混合编程技术均没有涉及到,甚至在FORTRAN90系统的帮助文件中也没有描述。笔者在设计和编写一个具体应用软件时,使用VB语言编写了软件可视化用户界面,采用ADO完成对数据库的操作,通过用户界面实现实时数据接收并与相关字符信息组合成数据记录;因为要求软件具有较快的运行速度和较强的计算能力,所以使用For-件中。为此,在上述应用中,必须使用结构体数组传递来实现VB与Fon瑚n90动态链接库(DLL)中过程的数据交换。1不同程序语言之间的过程调用与同一语言中的过程调用存在着较大的差异。同一语言中过程和调用它们的程序都是在同一环境下设计的,因此,调用程序和被调用过程之间不存在调用约定不一致的问题。但在混合编程中,由于不同语言编写的程序调用约定不完全一致,就有可能导致程序执行错误的调用,所以,在混合编程时必须保证调用约定的匹配pl。调用约定主要包括过程名约定、堆栈调用约定、参数类型约定和参数传递方式约定。过程名的约定是指在源程序编译生成DLL目标代码时,其代码中的过程名随调用约定的不同而呈现出J.ofofSuz}IouTechn0109)r)(苏州科技学院电子信息工程学院,江苏苏州215011)90与VB混合编程的基本方法,研究并解决了两种语言之间结构体数组传递的技术关键,为法进行了详细说明。结果表明:通过文中给出的方法和技术可将应用软件的核心计算模块设计成动态链接库,有助于对所开发的应用软件进行升级和维护。关键词:混合编程;动态链接库;结构体数组传递;调用约定【收稿日期】2008—06-25【作者简介】李学哲(1965一),男,北京人,副教授。andVoL21No.4Dec.2008摘中图分类号:’rP274文献标识码:A文章编号:1672—0687(2008)04-0076-05IJink万方数据Fo删O中不区分大、小写,但动态链接库的入口函数严格区分大、小写。因此在Declare语句中声明过程名这种对应过程名方法很不方便,实际应用中往往通过Fo咖190语言中的Ali嬲属性,将生成的目标过程Fort瑚90采用De洲t调用约定,则在VB中须声明为:先,在F0栅n90开发环境中新建一个工程wen—zIlang_1,其类型选为“Dy船IIlic—nnkUb唧”;在工程中再新90中调用的堆栈处理方式。Fo栅n90调用约定有三种,即:在缺省情况下,VB与Fo她n90之间的参数均按引用方式传递。也可在F0rt阳n90的过程中,将AT.Public】Decl啪Sllb删啪mAli船”.NAME@n呱Byval】VaIi蝴e【AsVbJlorJ)LLl(Amy,N啪)type】[,【Byval】v矗-Fort砌90与vB中对应的过程及数据类型DU。EⅪ)oRT'alias:7%For』}LLl,.:Vb-№LDU。1第4期李学哲等:Fortran90与VB混合编程