Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29285 Discussions

Pb when calling VB.net COM DLL from fortran

pinje
Beginner
464 Views
Hi all,







I am trying to call functions stored in a VB.net dll from Visual Compaq Fortran. I based my work on the Autodice sample, that is, i created a COM callable wrapper for vb DLL and i then gerenerate the fortran module to use it in my fortran code.







I am getting a "Unhandled exception in Fortran EXE.exe: 0xC0000005: Access violation" when calling the function using this syntax: CALL $ComClsInterface2d_MsgBoxShow(app)







That is now days i am stock on this problem, the COMCREATEOBJECT returns a non 0 value (Which is good?), and when browsing my OLE/COM browser, everything looks fine.







Below is a sample of the VB DLL and Fortran exe program. Do you have any ideas why this is happening? Thanks for answering me.







--------------------------------------------



VB .NET class com



--------------------------------------------



_



Public Class ComClsInterface2d







#Region "COM GUIDs"



Public Sub MsgBoxShow()



MsgBox("Hello world!")



End Sub







Public Sub Calc(ByRef Ivar As Integer)



Ivar = Ivar * 25



End Sub



End Class







--------------------------------------------



Fortran program



--------------------------------------------



program FortranTest







!module to use in this fortran program



USE DFLIB



USE DFWIN



USE DFCOM



USE DFCOMTY



USE DFAUTO



USE Module_VB_Fortran !This is the module generated by the Module Wizard







implicit none







!variable declaration used by the calling module



INTEGER*4 :: hRes, app







!variable declaration use for calculation



integer*4 Ivar







app=0







!START PROGRAM and create object VB DLL



CALL COMINITIALIZE(hRes)



CALL COMCREATEOBJECT ("VB_COM_DLL.ComClsInterface2d", app, hRes)







!check the app nb is not 0



print *, 'app = ',app







!Call the function in VB DLL







!============> IT CRASHES WHEN CALLING THIS SUB:



CALL $ComClsInterface2d_MsgBoxShow(app)







end program FortranTest
0 Kudos
0 Replies
Reply