![]() |
![]() |
| Paypal | 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.
|
![]() |
|
|
|