Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29244 Discussions

Error E-fail (x'80004005') from AUTOINVOKE

garyweis
Beginner
560 Views

I'm attempting to use a VB object provided by Telechart (TC2000Dev.cTC2000) I do the initiation sequences and everything is fine. I get the error x'80004005' attempting to obtain any array from the VB program, e.g.:

integer(4), volatile :: w(8000)

character(8), volatile :: s(8000)

invoke_args = AUTOAllocateInvokeArgs( )

CALL AUTOaddarg(invoke_args, '$ARG1', s,auto_arg_out)

CALL AUTOaddarg(invoke_args, '$ARG2', w,auto_arg_out)

status = AUTOinvoke(idispatch,'GetSymbols', invoke_args)

CALL AUTODeallocateInvokeArgs (invoke_args)

The VB calling sequence for GetSymbols is:

Sub GetSymbols(Symbols() As String, WordenNumbers() As Long)

The returned arguments have less than 8000 elements. Thetypes of character and integer(4) are acceptable and the VB subroutine obviously runs (takes 2+ seconds).Using Degug, I look at theargument parameter list built by Autoaddargs and I can see the returned Safearrays which are built correctly with the data to be returned. The error eems to be generated when Autoinvoke attempts to more the data from the Safearraysbuiltby VB back to the Fortran arrays. I have tried all different types of arrays, i.e. Allocatable and Pointer with and without the Volataile property.

The error seemsnot to be documented anywhere. Anybody know what it is trying to tell me or how I can solve?? Thanks.

0 Kudos
0 Replies
Reply