Hey,
I've already put in my orders and like most of you have been reading through the online help for PB9. I came across the following note about the DECLARE statement.
Does this mean we no longer need the assembly wrappers to retrieve the full int64 values returned by sqlite3_last_insert_rowid(), etc... ?
Thanks!
ps: How on earth does the compiler know which set of registers (FPU, EAX:EDX) to use for an imported function that returns a 64-bit value?
I've already put in my orders and like most of you have been reading through the online help for PB9. I came across the following note about the DECLARE statement.
While most FUNCTION calling conventions are fairly well defined throughout the industry, there are a few exceptions. In the case of functions which return a Quad Integer value, some programming languages (including PowerBASIC) return the quad value in the FPU, while others return it in EDX:EAX. PowerBASIC automatically detects the method used by imported functions and adjusts accordingly for you, but that's not a feature found in other compilers. Therefore, we recommend that you do not EXPORT QUAD FUNCTIONS unless they will only be accessed by PowerBASIC programs. A simple equivalent functionality would be to return the quad-integer value to the caller in a BYREF QUAD parameter.
Does this mean we no longer need the assembly wrappers to retrieve the full int64 values returned by sqlite3_last_insert_rowid(), etc... ?
Thanks!
ps: How on earth does the compiler know which set of registers (FPU, EAX:EDX) to use for an imported function that returns a 64-bit value?