zoukankan      html  css  js  c++  java
  • Intel Fortran 调用Delphi编制的DLL

    module link_cont
      interface
        subroutine I_FileOpenCont (ncase,ndata,lpool,xfiles)
          integer(kind=4) :: ncase
          integer(kind=4) :: ndata
          integer(kind=4) :: lpool
          character(len=40), dimension(10) :: xfiles
        endsubroutine I_FileOpenCont
      endinterface
    endmodule link_cont
    
    program s
      use link_cont
      use Kernel32
      use , intrinsic :: ISO_C_Binding !// 标准模块
      implicit none
      type(C_FUNPTR) :: C_FileOpenCont !// C 语言指向函数的指针
      procedure(I_FileOpenCont) , pointer :: FileOpenCont !// fortran 指向函数的指针
      !<-------------------------------------------------------------------------------------------------------------------------------
      integer(kind=4)                  :: add
      integer(kind=4)                  :: hwnd
      integer(kind=4)                  :: n_case
      integer(kind=4)                  :: n_data
      integer(kind=4)                  :: lpool
      character(len=40), dimension(10) :: c_files
      logical                          :: fail
      logical                          :: syslink
      !<-------------------------------------------------------------------------------------------------------------------------------
      hwnd = LoadLibrary('control.dll'//c_null_char)
      if (hwnd <= 0) then
        fail    = .true.
        syslink = .false.
        write(*,*) 'DLL Loading failure because control.dll was not found'
        read(*,*)
      else
        write(*,*) 'Succeed Contempt DLL (control.dll) Loading'
        add     = GetProcAddress(hWnd,'FILEOPENCONT'//c_null_char) !//获得地址(整数)
        C_FileOpenCont = transfer( add , C_FileOpenCont ) !//把整数的地址转换成 C 指针
        call C_F_PROCPOINTER( C_FileOpenCont , FileOpenCont ) !//把C指针转换成 fortran 指针
        call FileOpenCont(n_case,n_data,lpool,c_files)
    syslink=FreeLibrary(hwnd) endif end program s

    在delphi和intel fortran下实证过。

  • 相关阅读:
    mysql新建用户的方法
    工具网站
    如何做好站内锚文本?
    js 创建对象与继承
    js tips
    js作用域链 js没有块级作用域
    css
    instanceof
    问题
    传递,引用副本传递
  • 原文地址:https://www.cnblogs.com/China3S/p/9652237.html
Copyright © 2011-2022 走看看