PDA

Ver la Versión Completa : Crear Dll


Trigger
09-12-2003, 20:27:21
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: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:
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
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 comoError 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!