Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Este código Delphi como sería en C++ Builder (https://www.clubdelphi.com/foros/showthread.php?t=91497)

pepe_baile 19-02-2017 19:34:27

Este código Delphi como sería en C++ Builder
 
Hola amigos,
me han pasado un código en Delphi para un lector de documentos, podría alguien ayudarme para escribirlo en C++ Builder,
el código es:

//------------------------------------------------------------------------------------------
// For example, the initialise and shutdown APIs can be declared using code similar to:
//------------------------------------------------------------------------------------------

Código:

function MMMReader_Initialise(aDataCallback : MMMReaderHLDataCallback;
                                        aEventCallback : MMMReaderEventCallback;
                                        aErrorCallback : MMMReaderErrorCallback;
                                        aCertCallback : MMMReaderCertificateCallback;
                                        boolean : boolean;
                                        aProcessInputMessages : boolean;
                                        aParam : integer) : MMMReaderErrorCode; cdecl;

  function MMMReader_Shutdown() : MMMReaderErrorCode; cdecl;

//---------------------------------------------------------------------------------------------------------------------------------------
//The parameters required can be identified either from the C++ header files, or form the definitions in the Programmers’ Guide. Note the use of the //“cdecl” keyword, to tell Delphi to use this calling convention.
//These would then be implemented using the following lines:
//---------------------------------------------------------------------------------------------------------------------------------------

Código:

  function MMMReader_Initialise; external 'MMMReaderHighLevelAPI.dll' name 'MMMReader_Initialise';
  function MMMReader_Shutdown; external 'MMMReaderHighLevelAPI.dll' name 'MMMReader_Shutdown';

//---------------------------------------------------------------------------------------------------------------------------------------
//These lines tell Delphi the name of the DLL to import the functions from, and the name of the functions. The names of all functions in the 3M Page //Reader SDK are “undecorated”, and so are simply the function names as used.
//---------------------------------------------------------------------------------------------------------------------------------------


pongo también la explicación para más claridad,
muchas gracias

AgustinOrtu 19-02-2017 23:44:54

Sin saber el tipo de los parametros no creo que se pueda realizar la traduccion

Por otra parte, no existe un importador de bibliotecas que hacen esto automaticamente?

escafandra 20-02-2017 01:03:00

Cita:

Empezado por pepe_baile (Mensaje 513476)
The parameters required can be identified either from the C++ header files, or form the definitions in the Programmers’ Guide.

Debes encontrar los archivos cabecera de esa librería.

En realidad lo que describes no es un código delphi sino unas indicaciones someras para usar en Delphi una librería al parecer escrita en C/C++. Si encuentras esos archivos cabecera no tienes que traducir nada, simplemente ya están en C/C++. Otra cosa es que sepas usarla, para eso está el estudio se la guía para programadores que indicaron.


Saludos.

pepe_baile 21-02-2017 18:44:03

Hola buenos días, gracias por contestar,
sí, tengo por supuesto la .dll, la .lib, que he convertido de coff a omf, por que si no me daba errores,
además tengo también la cabecera que están todas las funciones, pero esta hecho todo para MFC,
y no me da más que errores, al final no se muy bien que hacer, hemos implementado otros modelos de
esta misma marca 3M, pero había ejemplos específicos para Delphi y pudimos pasarlos a C++ Builder,
pero con este modelo se nos esta haciendo cuesta arriba por que las variables que nos pide,
no las reconoce C++ Builder.
No sabía que había un importador de bibliotecas, quizas sería una posible solución, no?
gracias por vuestro tiempo y paciencia .
Saludos

escafandra 22-02-2017 00:56:14

No parece tener mucho sentido traducir a Delphi para, desde ahí, traducir otra vez a C/C++ Builder.

En el archivo cabecera deben estar definidas las funciones y los tipos. En caso de que devuelva o use parámetros con tipos propios de MFC entonces tienes un problema y esa dll pierde valor por perder potabilidad. En ese caso puedes intentar analizar esos tipos mirando las fuentes MFC y tratar de redefinirlos para su uso en Builder.


Saludos.

pepe_baile 22-02-2017 17:47:06

Muchas gracias, lo intento y ya digo como me va.
saludos


La franja horaria es GMT +2. Ahora son las 10:33:58.

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