Ver Mensaje Individual
  #6  
Antiguo 31-01-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Reputación: 22
ArdiIIa Va por buen camino
Yo de basic, (mi primer lenguaje en aquellos años del MSX) estoy oxidado y de VB nada de nada.

De todas formas, el planteamiento es sencillo:
Piensa en que forma manejas tus datos desde VB, son arrays, estructuras o registros... En fin sea lo que sea supongo que tendrán algún formato...
En ese caso deberías confeccionarte un registro para poder informar al otro programa:
En delphi es tal como esto:
Código Delphi [-]
PDatitoss = ^TDatitos;
TDatidos = packed record
    Dato_1    : Cardinal;   
    Dato_2    : Cardinal;   
    Dato_Main    : Cardinal; 
    Virtual_Mem_Adr  : Pointer;  // Dirección de memoria donde se aloja algo 
    Virtual_Men_Size : LongWord; // Longitud de memoria donde se aloja ese algo
    Etc_1 : Boolean;
end;

En tu caso, deberías pasarle a tu segundo programa, por ejemplo y siempre dependiendo de tu estructura, la dirección de donde se encuentran esos datos y la longitud de los mismos. Teniendo esto claro, ya podrías manejar con el otro programa esos datos, accediendo a esa dirección primeramente y segundo dándole la estructura requerida, y siempre considerando la longitud de los datos para no cometer ninguna falta y que te saquen tarjeta roja...

Este ejemplo que te pongo aquí has de modelarlo a tu albedrío y es el registro que debería utilizar con lo que te dije antes....

Abundando mas en el tema....
Código Delphi [-]
FicheroM       : THandle;
Datos : PDatidos;

FicheroM:=CreateFileMapping( $FFFFFFFF,
                               nil,
                               PAGE_READWRITE,
                               0,
                               SizeOf(Estructura),
                               'Fichero_Name');



Datos^.Dato_1 := xxxxx;
Datos^.Dato_2l := xxxx_Handle;
Datos^.Virtual_Mem_Adr := xxx;
Datos^.Virtual_Men_Size := xxx;

/// y Así sucesivamente

Desde ese momento la otra aplicación ya tiene disponible sus datos accediendo a ello tal como te dije anteriormente.

Te vuevo a repetir que en gran medida todo es en baje a los datos que majenes, desde una sible variable, a la que deberías obtener su dirección en memoria y su longitud, hasta una compleja estructura de registros y en ese caso aún lo podrías complicar más quizás reservando un espacio de memoria concreto para ellas mediante otras funciones tales como VirtualAllocEx

En fin, todo es organizarse y ponerse manos a la obra. Sobre las funciones que te comento, tienes extensa y detallada información así como ejemplos en cualquier sitio.

Espero haberte sido de ayuda. De todas formas que tiene VB que no tenga DELPHI. Si tienes el código de ambos programas mi sugerencia final es que reconviertas lo de VB a Delphi y seguro que saldrás ganando.

Saludos
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO

Última edición por ArdiIIa fecha: 31-01-2007 a las 22:02:13.
Responder Con Cita