Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Crear Dll (https://www.clubdelphi.com/foros/showthread.php?t=5893)

Trigger 09-12-2003 20:27:21

Crear Dll
 
Saludos a todos los del foro, me estoy iniciando en delphi (ya tengo bastante recorrido en c++ builder y algo de pascal), y me ha parecido excelente menos mal estos señores de la borland hacen todo homologo.

Bueno, mi pregunta es sobre las dll, listo fui al tutorial de las dll en delphi (dll wizard) y cvreo mis funciones y la compilo y todo excelente.

Ahora como hago para incluirla (mejor dicho, linkearla) en mi projecto.

me tocara registrar la dll o solo con colocarla donde esta el .exe :D

Gracias

roman 09-12-2003 20:43:49

Es igual que con cualquier otra dll. Sólo tienes que coocarla en algún lugar accesible. Puede ser la carpeta de tu ejecutable o alguna carpeta en el "path" de Windows.

// Saludos

delphi.com.ar 09-12-2003 20:50:52

Si se trata de una DLL "plana" y lo que quieres es usar funciones o procedimientos de estas, puedes hacerlo mediante la función LoadLibrary, o definirla estáticamente:
Código:

procedure NombreEnElExe; stdcall; external 'ArchivoDll.dll' name 'NombreEnLaDLL';
Saludos!

Trigger 09-12-2003 20:56:41

Gracias roman, lo tomare en cuenta, delphi.com.ar, si se trata de una dll plana, pero no entiendo alli estas declarando una subriutina llamada NombreEnElExe o es el nombre del .exe y solo estoy llamando una sola funcion de la dll y ademas sonde tengo que colocar el codigo

Perdona la insistencia la verdad no entiendo tendrias que ser mas especifico, gracias

delphi.com.ar 09-12-2003 21:07:54

NombreEnElExe es el nombre con que voy a llamar a la función de la DLL en el proyecto. Normalmente, si no hay problemas de nombres iguales y si las funciones en la DLL tienen nombre, se suele utilizar este mismo nombre.
NombreEnLaDLL es el nombre con que está definida la exportación en la DLL, tené en cuenta que también se puede acceder a una función mediante el número de orden

Trigger 12-12-2003 15:02:20

Saludos, les comento que probe lo que me dijeron y me sale un error, al cimpilar todo bien, pero al ejecutar sale un error de direccion de memoria tipico de Windows

La declaracion que hice fue:
Cita:

function Suma(Num1: Integer;Num 2: Integer): Integer; stdcall; external 'funciones.dll' name 'Suma';
sera que en el name tendre que ponerle parametros o algo

Gracias de antemano

delphi.com.ar 12-12-2003 15:39:41

¿Y cómo la delcaraste en la DLL?... ¿Son los mismos tipos de datos?¿Exportaste la función?¿Cuál es el error?

Trigger 15-12-2003 14:57:11

Saludos...
Los pasos realizados on los siguientes
Creo la dll en el dll Wizard, declro una funcion llamada suma que tiene dos parametros enteros y devuelve unh entero, la compilo y todo esta muy bien, luego la copio en el directorio de mi proyecto y en mi proyecto coloco la siguiente declaracion
Cita:

function Suma(Num1: Integer;Num2: Integer): Integer; stdcall; external 'funciones.dll' name 'Suma';
, lo copilo y todo perfecto, pero a la hora de correr el proyecto me sale un error como
Cita:

Error memory Adresss 0x00003C, algo por el estilo
, la verdad segui los pasos pero no se cual es la de exportar la funcion (en la dll solo creo la funcion y la copilo y listo)

Gracias

delphi.com.ar 15-12-2003 15:06:09

En una DLL, o mismo en un EXE, puedes definir cuáles funciones son aquellas que exportarás para poder utilizar desde un módulo externo, esto no es algo propio de Delphi.
Te recomiendo leer en la ayuda el tema exporting functions and procedures

Saludos!


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

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