在Visual Basic和COBOL之间传递数据

我有一个调用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"
weaz2009 回答:在Visual Basic和COBOL之间传递数据

根据您的执行环境,您也许可以调用系统DLL(使用CALL)。如果可能的话,您可以在VB6中创建一个DLL,通过它可以使用各种方法(例如Socket)进行通信,或者使VB6程序成为ActiveX EXE,COBOL可以将其实例化并作为进程外服务器直接与之交谈。

本文链接:https://www.f2er.com/3113153.html

大家都在问