• 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下实证过。

  • 相关阅读:
    第二十四讲 ASP.NET中开发复合控件
    第二十六讲 使用ASP.NET实现网络通讯
    第二十五讲 ASP.NET中的XML
    【经验】android webview 后退键导致表单再次提交
    【笔记】java 泛型
    【笔记】Collection
    【算法】Tween算法
    【JavaSript】发现一个漏洞
    【研究】加载图片时,同一url,多次request
    【笔记】多态之Override
  • 原文地址:https://www.cnblogs.com/China3S/p/9652237.html
Copyright © 2020-2023  润新知