Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ¿Es posible incluir rutinas C++ en aplicacion Delphi? (https://www.clubdelphi.com/foros/showthread.php?t=94387)

compuin 14-01-2020 21:27:28

¿Es posible incluir rutinas C++ en aplicacion Delphi?
 
Buenas tardes

Es posible incluir rutinas en C++ en mi aplicacion con Delphi, es decir, hacer un ejecutable con ambas rutinas ?

Alguna idea o experiencia ?

Casimiro Notevi 14-01-2020 21:32:43

Define "rutinas".
Puedes incluir "objetos", bibliotecas, etc. creadas con c++, pero rutinas no sé exactamente a qué te refieres.

compuin 14-01-2020 21:35:36

Ok,

Me disculpo por lo poco claro que fui.

Rutinas o funciones de calculo por ejemplo

escafandra 15-01-2020 07:44:37

Delhi no compila C++ pero Builder si compila delphi. La fira de incluir funciones escritas en C, con cualquier compilador C, es con dlls, o incorporando ar hijos obj al proyecto Delphi, cosa que si puede hacer. Esto se hace con la directiva
Código Delphi [-]
{$LINK filename}


Link object file (Delphi)


Saludos.

Neftali [Germán.Estévez] 15-01-2020 09:16:04

Otra opción es meterlas en una DLL y llamarlas desde tu aplicación Delphi (o lo que sea).

compuin 15-01-2020 13:28:28

Muchas gracias

Me podrian decir como llamo estas funciones desde Delphi si las coloco en una DLL ?

escafandra 15-01-2020 13:33:43

Un ejemplo de como importar la API wsprintf desde User32.dll


Código Delphi [-]
function wsprintf(lpOut, lpFmt: PChar): Integer; cdecl; varargs; external 'User32.dll' name 'wsprintfA';




Saludos.

compuin 15-01-2020 13:34:47

Muchas gracias a todos por sus aportes

Neftali [Germán.Estévez] 15-01-2020 16:03:01

La otra opción es con LoadLibrary y GetProcAddress, para hacerlo de forma dinámica.

compuin 15-01-2020 16:10:34

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 535210)
La otra opción es con LoadLibrary y GetProcAddress, para hacerlo de forma dinámica.

Hola

Podrias colocar un ejemplo de ello ?

Neftali [Germán.Estévez] 15-01-2020 16:22:50

Cita:

Empezado por compuin (Mensaje 535211)
Podrias colocar un ejemplo de ello ?


https://www.clubdelphi.com/foros/showthread.php?t=92441
https://stackoverflow.com/questions/...-dll-in-delphi

compuin 19-01-2020 15:00:29

Cita:

Empezado por escafandra (Mensaje 535205)
Un ejemplo de como importar la API wsprintf desde User32.dll


Código Delphi [-]
function wsprintf(lpOut, lpFmt: PChar): Integer; cdecl; varargs; external 'User32.dll' name 'wsprintfA';




Saludos.

Hola,

He tratado de hacerlo asi pero me arroja un error, el cual dice lo siguiente

The procedure entry point MYFUNCION could not be located in the dynamic link library MYDLL.DLL

La funcion existe en el DLL, el cual fue creado con Borland C++ 7.4

Alguna sugerencia ?

escafandra 20-01-2020 01:58:49

Cita:

Empezado por compuin (Mensaje 535287)
Hola,

He tratado de hacerlo asi pero me arroja un error, el cual dice lo siguiente

The procedure entry point MYFUNCION could not be located in the dynamic link library MYDLL.DLL

La funcion existe en el DLL, el cual fue creado con Borland C++ 7.4

Alguna sugerencia ?


El hecho de que uses una función en una dll no implica que esa dll la exporte. depende de la dll que realmente la exporta. Implemente una función en tu dll, expórtala e impórtala de forma estática desde delphi. Eso es lo que debe funcionar.


Código PHP:

__declspec(dllexport)

int MyFuncion(int parametro)
{
  return 
parametro*2;



Código Delphi [-]
function MyFuncion(parametro: integer): integer; cdecl; external 'MyDLL.dll' name 'MyFuncion';


Saludos.


La franja horaria es GMT +2. Ahora son las 05:52:20.

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