Created On: 30 April 2012
Problem:
Is it possible to pass command-line parameters to a Visual COBOL main program using a linkage section item?
Resolution:
Yes, it is possible to pass command-line parameters to a Visual COBOL native linked .EXE by using the run-time tunable command_line_linkage.
Program should receive parameters as follows:
linkage section.
01 CommandLine.
05 CommandLineLen pic 9(4) comp.
05 CommandLineParams pic x(256).
procedure division using CommandLine.
You must create a text file (called cobconfig.cfg in this example) containing the following line:
set command_line_linkage=TRUE
and then set the environment variable COBCONFIG to point to the file:
SET COBCONFIG=c:\\myapp\\cobconfig.cfg
Then when you start the app by passing it parameters on the command-line, e.g. myapp.exe "This is a test"
then the length of the command line, 16 in this case, will be passed in CommandLineLen and the value of the parameter will be passed in CommandLineParams.
This works only for native code main programs.
To read a command-line in either native or managed code use the following instead:
working-storage section.
01 CommandLine pic x(256).
procedure division.
accept CommandLine from command-line
Program should receive parameters as follows:
linkage section.
01 CommandLine.
05 CommandLineLen pic 9(4) comp.
05 CommandLineParams pic x(256).
procedure division using CommandLine.
You must create a text file (called cobconfig.cfg in this example) containing the following line:
set command_line_linkage=TRUE
and then set the environment variable COBCONFIG to point to the file:
SET COBCONFIG=c:\\myapp\\cobconfig.cfg
Then when you start the app by passing it parameters on the command-line, e.g. myapp.exe "This is a test"
then the length of the command line, 16 in this case, will be passed in CommandLineLen and the value of the parameter will be passed in CommandLineParams.
This works only for native code main programs.
To read a command-line in either native or managed code use the following instead:
working-storage section.
01 CommandLine pic x(256).
procedure division.
accept CommandLine from command-line
Old KB# 35910
#netexpress
#VisualCOBOL
#COBOL
#Enterprise