Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Cromatico

#61
Postie en programacion general pero no supieron responderme o quizas no se puede hacer lo que estoy intentando, posteo aca a ver si alguien tiene alguna idea, gracias de antemano!

Hola que tal, queria saber si hay alguna forma de enviar datos desde dev c++ hacia vb...
Tengo una funcion en c++ que obtiene datos de un proceso, los cuales podria obtenerlos directamente desde vb, pero c++ es muchisimo mas rapido para hacerlo.
Entonces queria saber si hay alguna forma de una vez obtenidos esos datos puedo enviarlos a vb de una forma rapida y sin que se pierda ninguno ya que es continuo el cambio de los datos.

Pense que quizas se podria hacer una conexión 127.0.0.1 entre el programa c++ y vb, pero bueno si hay otra forma mas simple, me gustaria saberla!

Muchas gracias!
#62
Hola que tal, queria saber si hay alguna forma de enviar datos desde dev c++ hacia vb...
Tengo una funcion en c++ que obtiene datos de un proceso, los cuales podria obtenerlos directamente desde vb, pero c++ es muchisimo mas rapido para hacerlo.
Entonces queria saber si hay alguna forma de una vez obtenidos esos datos puedo enviarlos a vb de una forma rapida y sin que se pierda ninguno ya que es continuo el cambio de los datos.

Pense que quizas se podria hacer una conexión 127.0.0.1 entre el programa c++ y vb, pero bueno si hay otra forma mas simple, me gustaria saberla!

Muchas gracias!
#63
Mmm no entiendo lo que me intentas decir... yo llamo desde vb a la funcion ReadLongVb, la cual llama a ReadLong y le da el array...
Pero ReadLongVb me retorna solo 1 valor del array, en este caso el array[0]
No hay alguna forma de que me envie todos?
return (array[0] && array[1]); ...............

Gracias!
#64
Hola disculpen que postee de nuevo, tengo una duda!!

yo llamo asi a la funcion:

long ReadLongVb (long Address)
{
BYTE Array[30];
ReadLong(Address,&Array,30);
return (Array[0]);
}


Esa es la funcion a la que llamo desde vb, seguramente se podra hacer directamente a la funcion ReadLong, pero bueno es la forma mas facil que encontre y funciona bien :P.

Entonces en vb recibo el array 0, pero la pregunta es, como hago para que me retorne todo el array completo?
E intentado muchas cosas pero no logre hacer que me retorne todo el array: 30...

Gracias!
#65
Si disculpame es que lo escribi desde aca, y tengo muy adoptado el vb me olvide de las comillas...
Ahora pruebo y te comento, muchas gracias!


EDIT:
Mejor imposible, muchisimas gracias Arcangel_0x7C5!!!


SOLUCIONADO!
#66
Hola Arcangel_0x7C5, gracias por contestarme... Bueno aver yo la llamo asi mira:

DWORD dwHP;
ReadLong(Address,&dwHP,"4");


Pero si en vez de 4 pongo mas, me tira error :(

Esto me devuelve la funcion: "7471216"
Que no se que tiene que ver con: "70 00 72 00 75 00 65 00 62 00 61"

:S Gracias!
#67
Hola que tall, queria hacer una pregunta... Yo programo en vb6, pero la verdad queria pasar parte de las funciones de mi programa a c++ e interactuar con una dll... Ya logre crear una funcion de readprocessmemory y usarla desde vb:

void ReadLong(DWORD lpAddress, void* buf, long len)
{
  DWORD oldprot, dummy = 0;
  HWND hwnd = FindWindow(NULL, "VENTANA");

  if (hwnd)
  {
     DWORD proc_id;
     GetWindowThreadProcessId(hwnd, &proc_id);
     HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id);

     ReadProcessMemory(hProcess, (void *) lpAddress, buf, len, 0);
    CloseHandle(hProcess);
   
  }
  else
  {
     // Error
  }
}



El problema es que esta funcion, me devuelve un valor de 4 bytes, y estoy tratando de leer un texto, "70 00 72 00 75 00 65 00 62 00 61" ("prueba" sin los nops), y en 4bytes seria "7471216", la cuestion es que no se como hacer que la funcion me devuelva el array "70 00 72 00 75 00 65 00 62 00 61", para luego convertirlo a texto :(...

Alguien me puede dar una mano? Gracias!!!
#68
Ya me funcionooooooooo, muchisimas gracias!!!!
#69
Listo quedo asi:
Public Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, ByVal lpNumberOfBytesWritten As Long) As Long

Me devuelve algo raro :S

Te dejo todo por las dudas:
X=LONG
Call Read(&HF227D8, "CaptionVentana", X)

Funcion Read:
Public Function Read(address As Long, gamewindowtext As String, valbuffer As Long)
Dim hWnd As Long
Dim pid As Long
Dim phandle As Long
hWnd = FindWindow(vbNullString, gamewindowtext)
If (hWnd = 0) Then
Exit Function
End If
GetWindowThreadProcessId hWnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
Exit Function
End If
Dim bArrayTemp(10) As Byte
Call ReadProcessMem(phandle, address, VarPtr(bArrayTemp(0)), 10, 0&)
X = VarPtr(bArrayTemp(0))
End Function


Estoy poniendo cualquiera quizas pero cada ves que ejecuto me devuelve 2 valores diferentes en X.
#70
Si fue lo primero que intente pero por mas que el 4 lo cambie por 10, 8 u lo que sea, me sigue leyendo lo mismo :(
Habra que cambiar algo en la declaracion?
Public Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long