- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This topic relates to the Microsoft Component Object Model: I used the Fortran Module Wizard in VS2005 to generatea module for the COM interfaces. The COM object is created successfully. Here is the code:
[cpp] CALL COMINITIALIZE(status) write(*,*) 'Opens the Maxwell script interface' CALL COMCREATEOBJECT ("AnsoftMaxwell.MaxwellScriptInterface", maxwellapp, status) write(*,*) 'Perform some FEA calculations' desktop = IMaxwellAppComInterface_GetAppDesktop(maxwellapp, pVal)[/cpp]
When I try to get the desktop information, I get the following error: Unhandled exception at 0x00000000 in maxwell.exe: 0xC0000005: Access violation reading location 0x00000000.
The automatically generated COM module for the GetAppDesk functionis as follows:
[cpp] INTERFACE !method GetAppDesktop INTEGER(4) FUNCTION IMaxwellAppComInterface_GetAppDesktop($OBJECT, pVal) INTEGER(INT_PTR_KIND()), INTENT(IN) :: $OBJECT ! Object Pointer !DEC$ ATTRIBUTES VALUE :: $OBJECT INTEGER(INT_PTR_KIND()), INTENT(OUT) :: pVal ! IDispatch !DEC$ ATTRIBUTES REFERENCE :: pVal !DEC$ ATTRIBUTES STDCALL :: IMaxwellAppComInterface_GetAppDesktop END FUNCTION IMaxwellAppComInterface_GetAppDesktop END INTERFACE
INTEGER(4) FUNCTION $IMaxwellAppComInterface_GetAppDesktop($OBJECT, pVal) IMPLICIT NONE INTEGER(INT_PTR_KIND()), INTENT(IN) :: $OBJECT ! Object Pointer !DEC$ ATTRIBUTES VALUE :: $OBJECT INTEGER(INT_PTR_KIND()), INTENT(OUT) :: pVal ! IDispatch !DEC$ ATTRIBUTES REFERENCE :: pVal INTEGER(4) $RETURN INTEGER(INT_PTR_KIND()) $VTBL ! Interface Function Table POINTER($VPTR, $VTBL) $VPTR = $OBJECT ! Interface Function Table $VPTR = $VTBL + 28 ! Add routine table offset IMaxwellAppComInterface_GetAppDesktop_PTR = $VTBL $RETURN = IMaxwellAppComInterface_GetAppDesktop($OBJECT, pVal) $IMaxwellAppComInterface_GetAppDesktop = $RETURN END FUNCTION $IMaxwellAppComInterface_GetAppDesktop
[/cpp]
I have no experience with COM and do not know where to find information or help on this topic. I will glad for advice on how to solve this issue.
Link Copied
0 Replies

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page