| 首页 | 电脑常识 | 程序设计 | 操作系统 | 语法 | 病毒安全 | 软件教程 | 硬件 | 数据库 | 多媒体 | 认证 | 下载 | 
首页>>程序设计 >>其他
Delphi与FORTRAN语言的混合编程

Delphi与FORTRAN语言的混合编程

电脑学习网,xuef.com,最全最新最权威的电脑知识网站.
免费计算机学习教程,电脑入门指南.

众所周知,FORTRAN强于数值计算,尤其是如果计算主要针对复数进行,则FORTRAN更有无可比拟的优势。FORTRAN是所有语言中唯一将复数定义为一种标准数据类型的语言。但是FORTRAN语言在可视化程序设计方面是非常欠缺的,至少目前还没有一家厂商推出具有RAD特性的FORTRAN编译集成开发环境。因此,当用FORTRAN实现了一种大型的科学计算以后,却难以将这种计算转变为数据输入简易、结果显示方便的WINDOWS可视化应用程序。这一点,采用Delphi很容易实现。因此,在许多情况下,使用FORTRAN和Delphi的混合编程可同时具有二者的优点。

本文采用两种不同的方法来实现混合编程。一种是直接执行可执行文件的方式,一种是调用动态链接库中子程序的方式。在第一种方式下,在Delphi程序设计中直接执行FORTRAN程序的执行文件,通过文件来进行数据交换;在第二种情况下,首先将FORTRAN程序编译成动态链接库(DLL),在Delphi程序设计中,调用此动态链接库中某个子程序来完成某项计算。这两种方式各有优缺点。第一种方式的调试较为简单,不存在不同语言之间的数据类型的不匹配问题。但是,这种方式下,在Delphi中无法实现对程序运行的有效监督,同时,以文件进行数据交换在操作中也不太方便,效率也不高。第二种方式则整合了两种程序之间的差别,如果编制成功,程序运行时看不出混合语言编程的痕迹,但是这种方式调试起来特别麻烦。一般说来,对于已有的输入输出较为复杂的FORTRAN程序,可以考虑第一种方式,而对于相对简单的,或者自己着手编制的新的程序,可选用第二种。

 

1.执行可执行文件(exe)方式

Windows中提供了API函数WinExec来执行存在的执行文件。该函数定义为:

UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow );

参数说明如下:
        LPCSTR lpCmdLine: 包含要执行的命令行。

系统将在以下范围查找应用程序:
            ①应用程序启动位置
            ②当前目录位置
            ③Windows system目录
            ④Windows 目录
            ⑤path中设置的路径列表
        UINT uCmdShow: 定义了以怎样的形式启动程序的常数值。具体说明如下:
           SW_HIDE 隐藏窗口,活动状态给令一个窗口 
           SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
 
           SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
 
           SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
 
           SW_SHOWMAXIMIZED 最大化窗口,并将其激活
 
           SW_SHOWMINIMIZED 最小化窗口,并将其激活
 
           SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
 
           SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
 
           SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
 
           SW_SHOWNORMAL 与SW_RESTORE相同 

如果Str为一记录可执行文件的路径及文件名变量,则WinExec ( Pchar ( Str ), SW_SHOWNORMAL )表示在正常状况下执行该可执行文件。

 

相 关 文 章
  • Delphi.NET内部实现分析(4)

  • Delphi.NET内部实现分析(5)

  • Delphi.NET内部实现分析(3.1)

  • Delphi.NET内部实现分析(3.2)

  • Delphi.NET内部实现分析(3.3)

  • Delphi.NET内部实现分析(3.4)

  • DELPHI8操作符重载的例子

  • ChuckJ的离开意味着Delphi的终结吗?

  • Delphi实现对注册表的监视和扫描

  • Delphi8for.Net印象

  • 学府网电脑学习的乐园
    中国电脑教学网,电脑爱好者的乐园,做最好最全的计算机学习网站.