我有一个调用VB6程序的COBOL程序,该程序使用COM端口从体重秤读取数据。
STRING WS-PATH,'\',LINK-KEY,'\vb.exe' DELIMITED BY ' ' INTO WS-COMMAND.
CALL 'SYSTEM' USING WS-COMMAND 128 GIVING WS-STATUS.
CANCEL 'SYSTEM'.
将数据保存到TXT文件中,然后COBOL程序打开TXT并读取数据。
Dim i_data_file As Integer
i_data_file = FreeFile
Open App.Path & "\data.txt" For Binary access Write As #i_data_file
Put #i_data_file,data
Close #i_data_file
STRING '@[DISPLAY]:',WS-PATH,'\data.txt' DELIMITED BY ' ' INTO WS-SOURCE
STRING WS-PREFIX2,WEIGHT-DATANAME DELIMITED BY ' ' INTO WS-TARGET
CALL 'C$COPY' USING WS-SOURCE,WS-TARGET GIVING WS-STATUS
CANCEL 'C$COPY'
到目前为止,一切正常,但是可以在程序之间直接传递和接收数据而无需创建任何文件吗?
编辑: 因此,我创建了一个DLL并将axdefgen用于测试目的:
* clsMath
CLASS @clsMath
CLSID,073F9971-1BE7-45A7-B50F-82AAAC511268
NAME,"clsMath"
PRIMARY-INTERFACE
DEFAULT-INTERFACE,"_clsMath"
* fSum
METHOD,1610809344,@fSum,"long" @2,TYPE 3,"long" @1,TYPE 3
RETURNING "long",TYPE 3
现在如何调用/传递参数到函数fSum?我尝试过:
CREATE clsMath
SERVER-NAME IS '128.0.0.220'
HANDLE IN WS-TEMP.
INQUIRE WS-TEMP fSum IN WS-TEMP2.
DISPLAY WS-TEMP2.
我明白了:
'FSUM' must be a 'get' property or method of '@CLSMATH'
这是否意味着我需要这样的东西?
PROPERTY-GET,17,@Day RETURNING "short"