FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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; |
#3
|
|||
|
|||
Ok, mil Gracias Cadetelli, lo voy a probar y con gusto les aviso!
__________________
Alberto C. |
#4
|
|||
|
|||
Bueno Ingacg, y por fin sirvió para una dll?
|
#5
|
|||
|
|||
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. |
#6
|
||||
|
||||
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. |
#7
|
|||
|
|||
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. |
#8
|
|||
|
|||
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. |
#9
|
||||
|
||||
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. |
|
|
|