Re: Issue from IVF 9.0 to IVF 10.1



"Jugoslav Dujic" ha scritto nel messaggio...

Your calling sequence has 13 arguments, but the actual subroutine has 12.
MAXC actual argument looks like a probable culprit. I'm not sure how it
ever worked...

Yes, I realized that the @XX number postfixing the compiled functions are
the amount of bytes of the stack.

You seem to have non-default calling convention active
(Project properties/Fortran/External procedures). I guess it's "CVF", i.e.
a leftover from CVF days. That's perfectly OK, and it helped catch the
error
(@52 stands for 13 arguments * 4-byte address each). I don't know how it
got activated in your upgrade from 9.0 and 10.1 though?

Well, such non-default calling convention was activated still in the v9.0
project, because it seemed to be the only way to be able to call those
functions from Visual Basic 6 code. And that configuration parameter was
kept from v9.0 to v10.1. Do you know if the default calling convention in
v10.1 is working well with Visual Basic code? I didn't try at all, because I
got IVF v10.1 just yesterday, so I had no time to make tests.

IVF default convention (cdecl) does not encode routine names in this way.
However, IVF provides far more powerful cross-interface checking across
all source files by means of /gen-interface /check-interface switches.
That's under Diagnostics\"Generate interface blocks" and "Check Routine
Interfaces" in the IDE project settings.

May I use these features even with a non-default calling convention?

Thank you so much for your support.

Marco



.


Quantcast