PB could need to reuse this parameter value, after the function call. Before VC8, the parameter value was never changed by the called function (as it was pushed on the stack which is not in the function scope), so we could use a trick to get it back if needed. With VC8, this trick didn't work anymore (the function can modify the user-parameter stack), so we have to duplicate the push, to be able to get it back if needed.srod wrote:Can I ask why PB passes an extra parameter when calling compiled user lib functions?
Calling exported string functions - PB 4.2 beta 2
Is there an inconsistency somewhere that prevents us from calling an exported function that returns a string from within the same library? I'm assuming that the ASM output is different between a Procedure and ProcedureDLL.
Would it be possible to keep the ASM the same so that we can call these functions again with TailBite?
Would it be possible to keep the ASM the same so that we can call these functions again with TailBite?
I see. Must admit that I have no experience with VC and so can't imagine why functions would modify the parameter stack? Still, mine is not to wonder why! Thanks.Fred wrote:PB could need to reuse this parameter value, after the function call. Before VC8, the parameter value was never changed by the called function (as it was pushed on the stack which is not in the function scope), so we could use a trick to get it back if needed. With VC8, this trick didn't work anymore (the function can modify the user-parameter stack), so we have to duplicate the push, to be able to get it back if needed.srod wrote:Can I ask why PB passes an extra parameter when calling compiled user lib functions?
I may look like a mule, but I'm not a complete ass.
Actually, there could be a solution on the compiler side. TailBaite creates pblibraries with the 'ASM' flags (in the .desc), right ?Mistrel wrote:Is there an inconsistency somewhere that prevents us from calling an exported function that returns a string from within the same library? I'm assuming that the ASM output is different between a Procedure and ProcedureDLL.
Would it be possible to keep the ASM the same so that we can call these functions again with TailBite?
Yes, that is correct.Fred wrote:Actually, there could be a solution on the compiler side. TailBaite creates pblibraries with the 'ASM' flags (in the .desc), right ?Mistrel wrote:Is there an inconsistency somewhere that prevents us from calling an exported function that returns a string from within the same library? I'm assuming that the ASM output is different between a Procedure and ProcedureDLL.
Would it be possible to keep the ASM the same so that we can call these functions again with TailBite?
Now, if you're saying that you may be able to adjust the compiler then I'm glad I halted my ammendments to coffIT! Foresight or what?
I may look like a mule, but I'm not a complete ass.
Re: Calling exported string functions - PB 4.2 beta 2
Hello, an asm guru can look @ this to fix this bug ?
Re: Calling exported string functions - PB 4.2 beta 2
Some news Droopy ?