INT64 arrays
- Last Updated: January 17, 2024
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
OpenEdge also supports passing INT64 EXTENT variables
(arrays) to DLL entry points, and supporting INT64 arrays
in DLL parameters. These cases follow the same conversion rules
for scalar INT64 variables. Specifically:
- An
EXTENTofINT64passed to aBYTE,SHORT,UNSIGNED-SHORT,LONGorUNSIGNED-LONG INPUTDLL parameter constructs an array of the appropriate data type, containing the appropriate low-order byte values. If any of the values in theEXTENTexceed the capacity of the target data type, ABL generates an overflow error. - An
EXTENTofINT64passed to anINT64 INPUTDLL parameter constructs an array of the same length containing 64-bit integer values. - An
EXTENTofINTEGERpassed to anINT64 INPUTDLL parameter constructs an array of 64-bit integers, automatically converting theINTEGERvalues toINT64values. - An
EXTENTofINT64passed to aBYTE,SHORT,UNSIGNED-SHORT,LONGorUNSIGNED-LONG INPUT-OUTPUTDLL parameter constructs an array of the appropriate data type, containing the appropriate low-order byte values. If any of the values in theEXTENTexceed the capacity of the target data type, ABL generates an overflow error at runtime. ABL automatically converts the returned values toINT64. - An
EXTENTofINT64passed to anINT64 INPUT-OUTPUTDLL parameter constructs an array containing 64-bit integer values. - An
EXTENTofINTEGERpassed to anINT64 INPUT-OUTPUTDLL parameter constructs an array of 64-bit integer values, automatically converting theINTEGERvalues to 64-bit values. ABL automatically converts the returned values fromINT64toINTEGER, removing the high-order bytes where necessary. If any of the extent values are larger than what would fit in anINTEGER, the ABL client generates an overflow error. - An
EXTENTofINTEGERpassed to anUNSIGNED-LONG INPUT-OUTPUTDLL parameter constructs an array of 32-bit unsigned integer values. ABL automatically converts the returned values fromUNSIGNED-LONGtoINTEGER. If any of the extent values are larger than what would fit in anINTEGER, the ABL client generates an overflow error at runtime. - An
EXTENTofINT64passed to aBYTE,SHORT,UNSIGNED-SHORT,LONGorUNSIGNED-LONG OUTPUTDLL parameter constructs an array of the same length for the appropriate data type. ABL automatically converts the returned values toINT64. - An
EXTENTofINT64passed to anINT64 OUTPUTDLL parameter constructs an array of 64-bit integers. - An
EXTENTofINTEGERpassed to anINT64 OUTPUTDLL parameter constructs an array of 64-bit integers. ABL automatically converts the returned values from INT64 toINTEGER, removing the high-order bytes where necessary. If any of the extent values are larger than what would fit in anINTEGER, the ABL client generates an overflow error at runtime. - An
EXTENTofINTEGERpassed to anUNSIGNED-LONG OUTPUTDLL parameter constructs an array of 32-bit unsigned integer values. ABL automatically converts the returned values fromUNSIGNED-LONGtoINTEGER. If any of theEXTENTvalues are larger than what would fit in anINTEGER, the ABL client generates an overflow error at runtime.
Note: You cannot pass an array of indeterminate
extent to a DLL.