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 09-06-2010
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
ayuda al crear Dll

hola amigos estoy aprendiendo a crear dll y necesito su ayuda e puesto este codigo en la dll y me da error al compilar

Código Delphi [-]
library dll;

uses
   Windows,SysUtils,Classes;

{$R *.res}
 function NombreUsuario : String;
 var
    pcUser   : PChar;
    dwUSize : DWORD;
 begin
    dwUSize := 21;
    GetMem( pcUser, dwUSize );
    try
       if Windows.GetUserName( pcUser, dwUSize ) then
          Result := pcUser
    finally
       FreeMem( pcUser );
    end;
 end;
begin
end.

el error que me dice es que el proyecto no puede ser depurado al menos que exsista una aplicacion definida . que significa esto?
Responder Con Cita
  #2  
Antiguo 09-06-2010
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
No sé si entendí mal, pero creo quieres decir que te da error al ejecutar, en Delphi entra al menú Run->Parameters y escoge una aplicación que tú sepas va a usar esta DLL
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 09-06-2010
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
e asociado la dll a la aplicacion y me tira el error de que la aplicacion no pudo iniciarse correctamente uso el siguiente codigo para llamar la dll .es algo que estoy haciendo mal o me faltaria algun otro codigo

Código Delphi [-]
unit AplicacionDll;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function NombreUsuario:string; stdcall; external 'dll.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
  NombreUsuario;
  Edit1.Text:=NombreUsuario;
end;

end.
Responder Con Cita
  #4  
Antiguo 09-06-2010
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
No estoy muy seguro pero creo tienes que declarar tu función con stdcall
__________________
self.free;
Responder Con Cita
  #5  
Antiguo 09-06-2010
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
igual me da el mismo error con stdcall o sin el
Responder Con Cita
  #6  
Antiguo 10-06-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 15
dado Va por buen camino
Tienes que partir de la base de ¿Que es un dll?

Un dll (dinamic lynk library) es un juego de funciones o procedimientos que VAN A SER LLAMADOS POR UN PROGRAMA EXTERNO.

Ahi ta', tienes que hacer un programa que LLAME A TU DLL con los parametros necesarios y obtenga lo que espera.

O que es lo mismo, la DLL NO SE PUEDE "AUTOEJECUTAR" ya que no es un programa, es una libreria de funciones.

droguerman Menciono que con RUN - > Parameters, mmmh, no, ahi especificas los "command line parameters" o parametros de linea, de los que se usaban en MS-DOS, por ejemplo la instruccion de MSDOS

c:>copy c:\archivo1 a: ((( uuuy se acuerdan de esto !! je je je )))

Tiene dos parametros, el parametro 0 = c:\archivo1 y el parametro 1 = a:
pero eso es otra cosa
Responder Con Cita
  #7  
Antiguo 10-06-2010
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigos ya solucione el error solo tenia que poner al final de la dll el siguiente codigo

Código Delphi [-]
 exports NombreUsuario;
Responder Con Cita
  #8  
Antiguo 10-06-2010
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigos disculpen la molestia tengo un solo problemita mas resulta que la aplicacion funciona perfectamente solo que al terminar la ejecucion del codigo el formulario se cierra
Responder Con Cita
  #9  
Antiguo 12-06-2010
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigos nuevamente he solucionado el ultimo problema que e tenido creando esta dll solo me costaba buscar un poco en google nada mas tuve que agregar el codigo
Código Delphi [-]
stdcall ; export
en las funciones declaradas en la dll
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
crear ayuda flor Varios 1 03-04-2008 12:02:10
Crear ayuda capo979 Varios 5 05-09-2007 19:00:30
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
crear un menú de ayuda Giniromero Conexión con bases de datos 2 05-01-2005 12:26:24
Crear ayuda a mis programas soul6301 Varios 1 02-06-2004 06:17:32


La franja horaria es GMT +2. Ahora son las 13:47:50.


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