Quantcast
Channel: Intel® Software - Intel® Visual Fortran Compiler for Windows*
Viewing all articles
Browse latest Browse all 5691

fortran DLL in excel 2010 (32 bit or 64 bit) in Windows 7 64 bit

$
0
0

Dear all,

I have read a few threads on this forum about this very problem and I think I have implemented all the suggestions but still cannot solve my problem.

Here is the problem: I used to have a DLL built in Intel fortran compiler 10 and I used to call it from Excel 2003 in my old WinXP laptop. That worked perfectly fine. My company gave me a new laptop with Window7 and Excel 2010 32bit on it and suddenly nothing works.

The first thing I noticed was that the Intel Fortran Compiler 10 was advertised by Win7 as not compatible and I thought that was the problem. I asked and obtained a new Intel(R) Visual Fortran Compiler XE 14.0.1.139 and immediately tried again to compile my dll. No success.

I created a minimum working case that still reproduces the problem and submitted to intel to ask for their help. They answered with a fix and I implemented the fix. Still nothing.

I removed the Excel 2010 32bit and substituted with Excel 2010 64bit, no improvement.

Since at this point I am lost I am posting my case hoping that someone will spot a problem:

Fortran code:

!  test_Dll1.f90
!
!  FUNCTIONS/SUBROUTINES exported from test_Dll1.dll:
!  test_Dll1 - subroutine
!
function test_Dll1(x,y,z)
implicit none
double precision :: x,y,z,test_Dll1

  ! Expose subroutine test_Dll1 to users of this DLL
  !
  !DEC$ ATTRIBUTES DLLEXPORT, STDCALL, REFERENCE, ALIAS:"TEST_Dll1_F" :: test_Dll1

  ! Variables

 ! Body of test_Dll1
 test_Dll1=x+y+z

end function test_Dll1

 

Visual basic for application code:

Private Declare PtrSafe Function TEST_DLL1_F Lib "C:\tmp\test_Dll1.dll" (ByRef x As Double, ByRef y As Double, ByRef z As Double) As Double
Function Test_Dll1(Arg1 As Double, Arg2 As Double, Arg3 As Double) As Double
 Test_Dll1 = TEST_DLL1_F(Arg1, Arg2, Arg3)

End Function

 

I manually copy the dll in the position specified to keep the path short. I tried to put it together with the excel file, in system32 and in a few other places with no success.

The funny thing is that excel writes #value! but doesn't raise any issue. If I try to debug from Fortran it never enters the dll and hence is never captured by the debugger.

The lack of error message on excel side puzzles me since I have no clue what it is wrong and what to fix.

I have also attached this MWE as a zip file.

Thanks,

Max

AttachmentSize
Downloadtest_Dll1.zip592.62 KB

Viewing all articles
Browse latest Browse all 5691

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>