Description
How To- get a C program to work with string in/out using the LegacyPlug Adaptor on COMPAQ/DEC Unix True 64
Solution
Doubles cannot be passed by value. (See the 3rd restriction on procedure driver arguments in the Procedure Driver section of the Attunity Connect Guide and Reference documentation.) You must write your code such that doubles are passed by reference.
Note that C floats are only 4-bytes long. They meet the above restriction and hence can be passed by value.
The problem is that the XML does match the C code. The mechanism for the func_in parameter should be REFERENCE (which is the default for a non-group parameter so mechanism does not need to be specified) instead of VALUE and func_out is the address of an address (char **) so it should use LEVEL=2. The MECHANISM dbCommand tells the procedure driver (not the legacyplug adapter as mentioned in the issue) how to pass the argument to the function.


LinkBack URL
About LinkBacks




