Fortran 调用C++ 的dll

2025-06-22 00:19:41
推荐回答(2个)
回答1:

program fftw_test
    use, intrinsic :: iso_c_binding
    implicit none
    
    interface
    real(C_DOUBLE) function SPA_Windowing(DataInEU, WindowType, DataCount, FilterFlag) bind(C, name='SPA_Windowing')
        use, intrinsic :: iso_c_binding
        import
        real(C_DOUBLE),dimension(*)  :: DataInEU
        integer(C_INT)               :: WindowType
        integer(C_LONG)              :: DataCount
        logical(C_BOOL)              :: FilterFlag
    end function SPA_Windowing
    end interface
    
    !integer(C_DWORD):: k
    integer(C_INT)  :: i
    integer(C_INT)  :: iw
    integer(C_LONG) :: irow
    real(C_DOUBLE)  :: pi,tg
    real(C_DOUBLE), pointer :: in(:) ,in1(:)      ! 输入数据
    allocate(in(1024),in1(1024))
    pi=dacos(-1.D0)
    do i = 1, 1024
        in(i) = dsin(2.0*pi*i)
    end do
    iw=1
    irow=1024
    tg = SPA_Windowing(in,iw,irow,.true.)
    
    write(*,'(I8, G16.8)')(i,in(i),i=1,1024)
   
end program fftw_test

回答2:

你好,你这个问题解决了吗?我现在也遇到了同样的问题