Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-06-2006
Javi2 Javi2 is offline
Miembro
 
Registrado: jun 2004
Posts: 152
Poder: 20
Javi2 Va por buen camino
Llamar a una DLL ubicada en otro directorio

Hola,

Acabo de crear por primera vez una DLL con un formulario. El caso es que quiero probarla llamándola desde otro proyecto de prueba ubicado en una carpeta distinta a donde esta la DLL, pero no me hace ni caso. Me muestra un mensaje diciendo que no encuentra la DLL. Si la copio en la misma carpeta donde está este proyecto de prueba sí funciona bien.
El problema es que cuando utilice realmente esta DLL, quiero ubicarla en una carpeta determinada que no tiene porqué coincidir con el ejecutable que la llama.

¿Cómo puedo llamar a una DLL ubicada en una carpeta distinta al ajecutable que la llama?

Muchas gracias por el interés.
Responder Con Cita
  #2  
Antiguo 30-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
¿Que codigo utilizas para llamarla? Hay mas de una forma de usar una DLL dependiendo de como la uses puedes indicarle una ruta absoluta, relativa o incluso buscarla tu mismo. Y en ultimo caso siempre puedes colocarla en la carpeta de windows.

Pon aqui el codigo que usas y le echamos un vistazo.
Responder Con Cita
  #3  
Antiguo 30-06-2006
Javi2 Javi2 is offline
Miembro
 
Registrado: jun 2004
Posts: 152
Poder: 20
Javi2 Va por buen camino
Gracias a todos por vuestro interés. Aquí adjunto el código donde se llama a la DLL. Lo que hago es añadir la definición de la función pero con la coletilla "external" y el nombre de la DLL.


Código Delphi [-]
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
 
function BUSCAARTICULO_MostrarDLL: shortstring; stdcall; external 'PrPrueba3.dll';
 
var
Form1: TForm1;
 
implementation
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
sCad: string;
begin
//llamada a la DLL
sCad := BUSCAARTICULO_MostrarDLL;
if sCad <> '' then ShowMessage( sCad );
end;
end.
Responder Con Cita
  #4  
Antiguo 30-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Tienes varias opciones, escribir la ruta completa de la dll o añadir la carpeta donde esta la dll a la variable de entorno PATH para que asi windows sepa donde buscarla. La primera tiene el inconveniente de que tienes que saber de antemano la ruta completa donde estara ubicada la dll y en el segundo caso necesitas que el instalador agregue la carpeta al Path. Aunque siempre puedes copiar la libreria a la carpeta de windows, aunque creo que no es eso lo que buscas.

Tambien puedes cargar la libreria de forma dinamica, es decir, una vez iniciada la aplicacion. Aqui tienes un ejemplo de como hacerlo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
llamar un proyecto desde otro en delphi7 marlona Varios 1 25-06-2005 04:24:06
llamar a otro programa srangel PHP 1 27-04-2005 16:35:25
copiar un archivo a otro directorio scotex Varios 2 19-02-2005 11:27:10
llamar a un procedure desde otro negama Conexión con bases de datos 1 28-08-2003 01:22:15
llamar a otro programa desde el mio sergionr Lazarus, FreePascal, Kylix, etc. 1 15-05-2003 18:35:06


La franja horaria es GMT +2. Ahora son las 18:54:02.


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
Copyright 1996-2007 Club Delphi