Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-05-2013
Novatin Novatin is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 61
Poder: 12
Novatin Va por buen camino
Pasar estructura Type de delphi a Builder..

Saludos acá nos seguimos trasnochando con Builder...

Estuve intentado utilizar una componente de Delphi en Builder, y finalmente pude hacer que el compilador me reconozca el componente...

Pero ahora no puedo invocar a la funcion porque debo mandar parámetros que estan escritos en delphi:

La funcion es:
Código:
function DumpRomBios(out Dump: TRomBiosDump;
  Method: TRomDumpMethod = rdmAutomatic; Timeout: Longword = 5000): Boolean;
Los tipos son:

Código:
type
  PRomBiosDump = ^TRomBiosDump;
  TRomBiosDump = record
    ByteArray: array [0..RomBiosDumpSize - 1] of Byte;
  end;

type
  TRomDumpMethod = (
    rdmAutomatic,  // Autodetect OS type and use proper method
    rdmGeneric,    // Dump with external 16bit program (Win32)
    rdmMemory,     // Dump from process' address space (Win9x)
    rdmPhysical,   // Dump from physical memory object (WinNT)
    rdmDevMem      // Dump from memory device /dev/mem (Linux)
  );
Como debería declarar estos tipos en Builder C++?? para enviarlos luego a la funcion??

Espero puedan darme una mano con esto...

Un Saludo.

Pd: el archivo completo esta al final de este hilo (BiosHelp.Pas)
http://clubdelphi.com/foros/attachme...7&d=1369763039
Responder Con Cita
  #2  
Antiguo 30-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Novatin Ver Mensaje
...
Como debería declarar estos tipos en Builder C++?? para enviarlos luego a la funcion??
...
Hola Novatin.

Una aproximación podría ser:
Código:
struct TRomBiosDump {
  unsigned char ByteArray[RomBiosDumpSize];
} *PRomBiosDup;


typedef enum TRomDumpMethod {
  rdmAutomatic, // Autodetect OS type and use proper method
  rdmGeneric,   // Dump with external 16bit program (Win32)
  rdmMemory,    // Dump from process' address space (Win9x)
  rdmPhysical,  // Dump from physical memory object (WinNT)
  rdmDevMem     // Dump from memory device /dev/mem (Linux)
} RomDumpMethod;
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 30-05-2013
Novatin Novatin is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 61
Poder: 12
Novatin Va por buen camino
Gracias eficsa, a ese paso y por toda la ayuda que me hiciste creo te estas convirtiendo en mi "cibermentor" de Builder++

Con esos ejemplos pude entender mejor los "type" de delphi...

y la llamada a la función en Builder me quedó asi:

Código:
   bool result;
   struct TRomBiosDump Dump;
   union TRomDumpMethod;
   TRomDumpMethod=rdmAutomatic;

   result=DumpRomBios(&Dump,TRomDumpMethod,5000);
y me generó un errorcillo - y a mi cuando no? -: "Cannot convert 'TRomBiosDump*' to 'TRomBiosDump'... Sé que indica que no puede convertir un "puntero a struct" en un "struc" y lo intente cambiando esto en la unión, pero creo que el detalle esta en la llamada de delphi:

Código:
function DumpRomBios(out Dump: TRomBiosDump;
  Method: TRomDumpMethod = rdmAutomatic; Timeout: Longword = 5000): Boolean;
Espero puedan ayudarme con esto... gracias de antemano.

Un saludo.
Responder Con Cita
  #4  
Antiguo 30-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Novatin.

Fijate si te funciona de este modo:
Código:
...
struct TRomBiosDump {
  unsigned char ByteArray[RomBiosDumpSize];
} *PRomBiosDup;


typedef enum {
  rdmAutomatic,rdmGeneric,rdmMemory,rdmPhysical,rdmDevMem
} TRomDumpMethod;

...
{
  bool result;
  struct TRomBiosDump Dump;
  TRomDumpMethod RomDumpMethod = rdmAutomatic;

  result = DumpRomBios(Dump, RomDumpMethod, 5000);
  ...
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 31-05-2013
Novatin Novatin is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 61
Poder: 12
Novatin Va por buen camino
Ahora si ya no salto error!

Con esto ya tengo para jugar con el componente de Delphi... lo que me dificulta es que el mismo no tenga una ayuda mínima... pero ya de a poco también aprendo un poco de Delphi, por lo pronto estoy haciendo "hello worlds" con FreePascal..

Saludos y Gracias por todo ecfisa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
pasar codigo de delphi a c++ Builder rxaxx9 C++ Builder 2 13-05-2012 06:27:17
Could not convert variant of type (Null) into type (Integer) Alejo15x Varios 2 30-11-2010 17:35:50
Programando con Delphi, error en type, maskedit sizne OOP 0 11-03-2010 07:27:44
Comando TYPE del DOS y DELPHI con WinExec. manueljgc Varios 3 29-12-2008 20:24:17
Estructura de un proyecto en delphi mosorio Varios 0 16-06-2004 12:57:19


La franja horaria es GMT +2. Ahora son las 22:50:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi