用vb和fortran混合编程开发科学计算软件

用vb和fortran混合编程开发科学计算软件

ID:34510118

大小:308.10 KB

页数:4页

时间:2019-03-07

用vb和fortran混合编程开发科学计算软件_第1页
用vb和fortran混合编程开发科学计算软件_第2页
用vb和fortran混合编程开发科学计算软件_第3页
用vb和fortran混合编程开发科学计算软件_第4页
资源描述:

《用vb和fortran混合编程开发科学计算软件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据第23卷计算机应用V01.232003年6月C伽puterAppljcati彻sJune,2003一———————————————————————————————————————————————————————————————————————————————一文章编号:100l一9081(2003)06Z一0012一02用VB和Fortran混合编程开发科学计算软件张学胜(北京工业大学机电学院,北京100022)摘要:用VB和Fonran混合编程技术开发出的科学计算软件,既能解决复杂的大型计算问题,又具有良好的人机交互界面。对

2、Windows环境下运行DOS外壳程序遇到的问题提出了新的解决方案,并将计算结果在VB中显示出来。关键词:混合编程;外壳程序;动态链接库中图分类号:TP314文献标识码:A1实现F0nmn外壳程序的同步运行用FonnaJl和VB两种语言混合开发科学计算软件,一般有两种方法:一是用VB设计界面和控制程序,将Fortr蛐程序编译为动态链接库,并由VB程序调用它。数据交换由参数传递实现,对于交换海量数据是不经济的、且处理困难。二是用VB设计界面,将Fonm程序编译成可执行程序,在适当时由VB程序启动它。计算结束后,结果显示在VB界面上。整个

3、运行过程中,Fort随n程序都在后台运行。VB和FoItE蛳间的所有数据都通过磁盘文件进行交换,交换海量数据非常经济,效率也非常高⋯。利用VB中的sheu函数来启动Fortran应用程序,存在两个问题:一是sheu函数以异步方式执行,该方式不能等待Fortran程序结束丽将继续执行后续VB程序,使VB得不到Fortmn程序运行结果而出错。二是VB运行于聊ND0ws平台上,而Fortmn应用程序基于DOs平台。在WIND0ws平台上运行DOs应用程序时,会退出唧ND0ws而进人D0s界面,从而出现“黑屏”现象。因此必须解决这些问题¨o。

4、2用API函数对外壳程序同步调用win32API提供了一些有关进程的操作函数㈨,可以解决上述外壳程序的异步运行问题。用0penProce8s函数建立外壳进程句柄,然后通过waitForsindeObject函数等待外壳进程终止,外壳进程终止后用closeHandle函数关闭打开的进程对象。这种方法比文献[1]、文献[2]所介绍的方法更简单、更方便、程序移植性更好。这些API函数在VB中声明如下:PrivateDeclareFunctionwaitForSindeobjectLib”kemel32”(ByValhH肌dleAskng,B

5、yValdwMillisecond8Askn曲Asb“gPrivateDeclareFunctionC108eHandle“b”kemel32”(ByValhObjectA8Lan曲A8kmgPdvateDeclareFunction0penProcess¨b”kemel32’’(ByValdwDesiredAcce88Asl旬ng,ByValblnheritHandleA8I旬ng,ByValdwProce8sIdA8bng)AsLongPdvateConstINFINl7rE=一1&PrivateConstSYNCHRONIZE=

6、&H100000当sheⅡ(pathn咖e,[windowstyle])函数中windowstyle命名参数取vbHide时,隐藏了外壳应用程序的窗口,从而避免了“黑屏”现象。在waitF0rSindeObject函数中,dwMiⅡiseconds参数取一1,表示可以进行无限长时间的等待,一直到外壳应用程序结束,再执行后续VB程序,从而解决了外壳程序的异步运行问题。启动并等待外壳程序终止的实现代码如下:DimiT鹊kAsLong,retA8Long,pHandleA8Lo“gi7ra8k=Shell(FilePath&”、80rt.e

7、xe”,vbHide)pHandIe=OpenP■ocess(SYNCHRONIZE,Fal8e,iTask)收稿日期:2002一09一08作者简介:张学胜(1972一)。男,河南南阳人,博士研究生,主要研究方向:结构优化与智能控制、cAD、计算机图形学、人机工程学分区。一般FreeBSD的第二分片和sol撕s的S1分片是交换分片。修改Linux的/etc/rc.d里的配置文件,在swapon前加:mksw8p/dev/hda?鹕ol鲥s的s1分片mk8w叩/dev/hda?#FreeBSD的交换分片修改Linux的/etc/fsta

8、b,增加或修改:/dev/hda?nonesw印swO/dev/hda?none8w印8w0O至此系统安装和优化基本完成。5结语无论是x86机器还是其它机器,抑或是安装其它的多个系统,原理都是一样的。在MBR中安装的可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。