FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Incorporar dll al proyecto
Quisiera saber como hago para incorporar o referenciar a un archivo .DLL dentro de mi proyecto. Es una biblioteca externa que no pertenece al delphi 7. Si quiero ejectar la aplicacion en otros ordenardes debo agregar al .dll o ya al compilar queda todo incluido. Muchas gracias.
|
#2
|
|||
|
|||
Hay dos formas de llamar o usar rutinas que estan contenidas en una dll, y usar estas en tu proyecto delphi.
La Dll debe estar junto con tu ejecutable o en una ruta que pueda ser ubicada como por ejemplo x:\windows\system32 Saludos |
#3
|
|||
|
|||
Estoy probando con el uso del DLL externas y no logro hacer que me devuelvan datos las funciones.
Por ejemplo este unit en la funcion VerVersion si que me devuelve el valor numerico pero no me asigna nada a la variable cadena, la cual se cargaria con los datos de la version i.e.(Rel.4.13) . Creo que el paso por puntero es correcto. unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) AbrirPuerto: TButton; VerVersion: TButton; procedure AbrirPuertoClick(Sender: TObject); procedure VerVersionClick(Sender: TObject); private { Private declarations } public { Public declarations } cadena:string; function OpenSerial(PortNumber:LongWord): LongWord; function CloseSerial:longword; end; var Form1: TForm1; implementation function Dll_OpenSerial(PortNumber:LongWord): integer; external 'I:\PRUEBA\DLL_ACCESS_POINT.dll'; function Dll_CloseSerial(PortNumber:longword): longword; external 'I:\PRUEBA\DLL_ACCESS_POINT.dll' function Dll_GetDllVersion(var cadena): longword; external 'I:\PRUEBA\DLL_ACCESS_POINT.dll' function Dll_ReqSysInfo(var sInfo:string):longWord; external 'I:\PRUEBA\DLL_ACCESS_POINT.dll' {$R *.dfm} procedure TForm1.AbrirPuertoClick(Sender: TObject); begin OpenSerial(0); OpenSerial(1); OpenSerial(2); OpenSerial(3); OpenSerial(4); OpenSerial(5); end; procedure TForm1.VerVersionClick(Sender: TObject); var resultado:longWord; begin cadena:= '1234567890'; resultado:= Dll_GetDllVersion( cadena); MensaPanta(resultado); MensaPanta(cadena); end; function TForm1.OpenSerial(PortNumber: LongWord): LongWord; begin result:= Dll_OpenSerial(PortNumber); if result = 1 then MensaPanta('Abrio') else MensaPanta('Error'); end; end. Muchas gracias por vuestra ayuda. |
#4
|
|||
|
|||
Cita:
Segundo si el tipo es PChar, te recomiendo hacer
Saludos y espero te sirva. Un abrazo Desde Concepcion-Chile |
#5
|
|||
|
|||
Gracias cloayza por tu respuesta , pero sigo con el mismo problema.
La funcion me devuelve un 8 pero la cadena queda tal cual se la paso y deberia quedar "4.13 VFP". Es como si no tomara la referencia de la variable,sino su valor. Usando la misma .dll desde VB6 . funciona perfecto, me devuelve lo que corresponde. No se por donde mirarlo ya, estoy danto palos de ciego. Este es la documentacion del la DLL Función Dll_GetDLLVersion (ByRef SerialStr As String) As Long . Esta función devuelve la versión de la Dll. Parámetros [out] SerialStr En esta posición se guarda la versión de la DLL. Valor que devuelve Devuelve el número de caracteres almacenados en SerialStr. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Incorporar DDL a EXE | carmax | Varios | 1 | 10-02-2007 18:21:07 |
incorporar imagenes a un RichEdit1 | jorodgar | Varios | 3 | 29-04-2005 20:16:54 |
problemas al incorporar en red un equipo con windows xp | Aprendiendo | Varios | 0 | 28-03-2005 14:19:51 |
Ejecutar proyecto. | bububin | Varios | 2 | 01-06-2004 08:54:47 |
Proyecto MDI? | danytorres | Varios | 2 | 29-10-2003 15:52:25 |
|