Riaan, The DESCRIPTOR keyword is OpenVMS specific. It is an argument passing mechanism that has no equivalent in Windows or UNIX/Linux. The "LIB$GET_SYMBOL" is an OpenVMS standard runtime library call. Many OpenVMS system service calls require arguments to be passed by DESCRIPTOR. A descriptor is a small structure that encodes the location, length, and other attributes of the argument. The company I work for, Transoft (now part of Advanced Computer Software in the UK), supply libraries that provide OpenVMS functionality on Windows and UNIX/Linux. Another attribute of OpenVMS library calls is that they allow arguments to be omitted. Using the Transoft libraries the call you mention would be changed to: CALL "LIB_GET_SYMBOL" USING CONTENT "USER_ID" * Symbol name REFERENCE W5-USERNAME * Buffer for result VALUE 0 * Omitted argument VALUE 0 * Omitted argument VALUE 7. * Length of argument 1 Note that this call returns the value of a CLI symbol. CLI symbols have some similarity with environment variables, but cannot be completely replaced by environment variables. I'll leave others to answer the ACUCOBOL to Visual COBOL conversion question. Leigh.
↧