Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-05-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
versión de una dll

Hola, de casualidad, alguno de ustedes sabe como puedo obtener la versión de una dll?.

de antemano, gracias.
__________________
Alberto C.
Responder Con Cita
  #2  
Antiguo 27-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Para un exe te valdria esta funcion

Código:
   function GetAppVersion : string;
   var Size, Size2: DWord;
       Pt, Pt2: Pointer;
   begin
        Size := GetFileVersionInfoSize(PChar (ParamStr (0)), Size2);
        if Size > 0 then
         begin
              GetMem (Pt, Size);
              try
                 GetFileVersionInfo (PChar (ParamStr (0)), 0, Size, Pt);
                 VerQueryValue (Pt, '\', Pt2, Size2);
                 with TVSFixedFileInfo (Pt2^) do
                  begin
                       Result:= ' Versión '+
                                IntToStr (HiWord (dwFileVersionMS)) + '.' +
                                IntToStr (LoWord (dwFileVersionMS)) + ' Build ' +
                                IntToStr (HiWord (dwFileVersionLS)) + '.' +
                                IntToStr (LoWord (dwFileVersionLS));
                  end;
              finally
                     FreeMem (Pt);
              end;
         end;
   end;
Nunca lo he probado en una dll, pero... no estaria de menos probarlo. Si lo pruebas y te sirve, ya nos lo diras
Responder Con Cita
  #3  
Antiguo 28-05-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
Ok, mil Gracias Cadetelli, lo voy a probar y con gusto les aviso!
__________________
Alberto C.
Responder Con Cita
  #4  
Antiguo 04-06-2003
jafl1965 jafl1965 is offline
Miembro
 
Registrado: may 2003
Ubicación: Morelia, México
Posts: 170
Poder: 21
jafl1965 Va por buen camino
Bueno Ingacg, y por fin sirvió para una dll?
Responder Con Cita
  #5  
Antiguo 04-06-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
Ups!, siento decepcionarlos, pero nop..., de hecho creo que no fuí muy explícito...hagan de cuenta que yo voy a cargar una dll con un loadlibrary('c:\MIDll.dll'), pero necesito saber la versión de la dll que quiero cargar (en ésta caso le versión de c:\MIDll.dll), para que en base a la versión haga los ajustes en mi programa..

Saludos a todos
__________________
Alberto C.
Responder Con Cita
  #6  
Antiguo 04-06-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Yo he probado este código, que es el que ofrece cadetill con algún cambio sutil, y funciona.

Código:
function GetFileVersion( AFileName : String ) : string;
var
  Size,
  Size2 : DWord;
  Pt,
  Pt2   : Pointer;
begin
  Size := GetFileVersionInfoSize(PChar(AFileName), Size2);
  if Size > 0 then
  begin
    GetMem(Pt, Size);
    try
      GetFileVersionInfo (PChar(AFileName), 0, Size, Pt);
      VerQueryValue (Pt, '', Pt2, Size2);
      with TVSFixedFileInfo (Pt2^) do
        Result:= Format('Versión %d.%d Build %d.%d', [ HiWord(dwFileVersionMS),
                                                       LoWord(dwFileVersionMS),
                                                       HiWord(dwFileVersionLS),
                                                       LoWord(dwFileVersionLS)] );
    finally
      FreeMem (Pt);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := GetFileVersion( 'C:\WINDOWS\Moricons.dll' );
end;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 04-06-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
Orale!, si funcionó, perfectamente!

Les agradezco a delphi.com.ar y a Cadetelli, por tomarse la molestia de contestar esta duda.

Saludos desde México
__________________
Alberto C.
Responder Con Cita
  #8  
Antiguo 24-06-2003
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
siguiendo con este tema.....

como puedo saber si una dll esta registrada en windows.
y como puedo saber el path a la dll registrada.

llendo a lo concreto.

mi programa necesita, por ejemplo midas.dll pero yo antes de registrar mi dll quisiera saber si ya esta registrada... para luego obtener el path y la version y en base a esto decidir si registrar o no la version de la dll que trae mi programa....

muy amables por su ayuda..

gracias de anteman.
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #9  
Antiguo 24-06-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Ante todo te comento que desconozco si MIDAS necesita estar registrada pero te cuento que no todas las DLLs se registran, si quieres aquí te cuentan que DLL´s son "registrables" y no son mas que DLL´s Win32, con un juego específico de procedimientos y funciones que les da esa flexibilidad y funcionalidad. Bueno la idea de registrar los Objetos COM es que podamos acceder a estos por su GUID, y el nombre de del archivo que contiene estos objetos puede cambiar, te recomiendo leer la ayuda de funciones como QueryPathOfRegTypeLib y LoadRegTypeLib.



Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 07:36:06.


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