Cobol - Cobol / Visual Basic

 
Vista:

Cobol / Visual Basic

Publicado por Sabueso Chile (5 intervenciones) el 31/10/2007 16:17:25
Hola amigos se me ha presentado una gran duda y despues de googlear un par de dias me decidi por preguntar puntualmente.

Tengo la siguiente situacion:

Programa Cobol

.....
.....

DATA = "1234"

CALL "SL_TRX" USING

BY REFERENCE DATA

RETURNING RETORNO

....
....

donde SL_TRX es una dll activex

bueno, la cosa es que DATA tiene como datos antes de ejecutar el CALL un string que contiene "1234"

despues del call DATA cambia de valor. eso quiere decir que la dll visual basic le cambio el valor desde VB.

como esta solo la DLL y no tengo el proyecto mi duda es ......

como logro cambiar el valor de DATA en cobol, desde VB6.0

Si falta algo me dicen y les respondo.

Muuuuuuuchas gracias de antemano a todos....

Sabueso.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cobol / Visual Basic

Publicado por SuperIndio (161 intervenciones) el 01/11/2007 19:22:05
Tenes que hacer un programa COBOL con las funciones que seran invocadas desde
Visual Basic de este modo
LINKAGE SECTION.
01 DATA PIC 9(4) COMP-5.

PROCEDURE DIVISION USING DATA.
MAIN.

ENTRY "FUNCCOBOL" USING BY REFERENCE DATA.

COMPUTE DATA = 456 + (34 + 56)

EXIT PROGRAM.

luego tenes que compilarlo y Linkarlo como DLL (Ojo no en todos los COBOLES se puede hacer esto....

Y desde Visual Basic:

Type S_data
data As integer
End Type
Declare Sub FUNCCOBOL Lib "DllCobol.dll" (X As Integer)

Function InvocarCobol()

Dim midata as S_data
midata.data = 0
Call FUNCCOBOL(midata)

end function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cobol / Visual Basic

Publicado por Sabueso Chile (5 intervenciones) el 02/11/2007 20:07:19
Gracias SuperIndio por Responderme

Es justamente al reves de lo que quiero.

Quiero invocar funciones de visual basic desde cobol

con CALL en cobol llamo a una dll hecha en visual que tiene funciones que modificarian los valores en cobol.

Gracias y espero tus comentarios.

Sabueso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cobol / Visual Basic

Publicado por SuperIndio (161 intervenciones) el 03/11/2007 00:49:07
Uhhh!!! perdon pero seria involucionar no ? nunca hice eso en forma directa seguro que se debe poder... pero lo mas cercano a eso que hice una vez era algo asi:
Como no podia invocar en forma directa a la funcion de la Dll hice un programa en C que si podia ejecutar la funcion de la Dll (Unrar.dll) y como no podia devolver un resultado en forma directa, grababa el mismo en un archivo y paso posterior lo leia desde cobol.
entonces el programa cobol lo que hacia es un CALL "SYSTEM"
Bueno si no logras hacerlo esto puede ser una solucion....

Saludos Chile
Fuiste a ver a Soda ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cobol / Visual Basic

Publicado por Sabueso Chile (5 intervenciones) el 03/11/2007 17:41:46
Lo que pasa es que donde trabajo compraron un software que cubre solo el 80% de los requerimientos para su migracion quedaran unas piesas cobol y tengo que desarrollar servicios vb que permitan hacer todas las consultas a bases de datos a webservices, por eso es que involuciono.., jejej

Tenia todas las ganas y una entrada para ir a verlos a CONCEPCION, yo soy de SANTIAGO, pero no pude ir por falta de tiempo.

Gracias por la sugerencia de usar un archivo para el paso de datos, ya lo habia pensado como plan de contingencia.

Gracias Super Indio.

Sabueso Chile.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cobol / Visual Basic

Publicado por Sabueso Chile (5 intervenciones) el 06/11/2007 18:31:01
Bueno, encontre la respuesta a mi duda y se las menciono para compartir.

Yo estaba usando la sentencia CALL para llamar una DLL

bueno, no se debe usar CALL sino INVOKE

con esa sentencia pueden llamar una DLL y sus subrutinas.

en la base de conocimientos de http://www.microfocus.com en la seccion de soporte esta documentado

busquen como cbl2vbx

Gracias a todos por su tiempo.

Saludos
Sabueso CHile
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar