Newsgroup: it.comp.lang.visual-basic
Titolo: Versione di una dll

Qualcuno mi può dire come si fa a risalire ad una versione di una dll?

 Qualcuno mi può dire come si fa a risalire ad una versione di una dll?
Tasto destro, proprietà, versione.
-- 
			Luca Amicone
--
	L'esperienza è quella cosa meravigliosa che rende capace di
	riconoscere un errore dopo averlo commesso nuovamente.
		-- F. P. Jones

Qualcuno mi può dire come si fa a risalire ad una versione di una dll?
Non ti è sufficiente selezionare il file, cliccare con il pulsante destro e
selezionare Proprietà e poi Versione?
Davide Granzotto
ICQ UIN 2294814
http://www.pulsar.it/windows95
  Il Club dedicato a Windows 95

selezionare Proprietà e poi Versione?
Ciao Davide,
Ben tornato.... e non per poco spero!
       Ciao
             Mario G.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 mag...@LEVAmicanet.it
(Per le risposte elimina LEVA dall' E-mail)

 Qualcuno mi può dire come si fa a risalire ad una versione di una dll?
click con pulsante destro sulla dll, proprieta' e.... bingo!
-- 
Cristiano Corsani
e-Mail: 
cris...@dsi.unifi.it
 
cris...@labri.u-bordeaux.fr
www: 
http://dsi2.dsi.unifi.it/~cristian/

Qualcuno mi può dire come si fa a risalire ad una versione di una dll?
Nel senso di SAPERLA data la DLL, oppure di GENERARLA dato il sorgente?
Nel secondo caso, normalmente nella DLL c'e' un catrubio di questo tipo,
che copio da un file .RC:
1 VERSIONINFO
FILEVERSION 0,0,2,1
PRODUCTVERSION 0,1,0,0
FILEFLAGSMASK 0x0L
FILEFLAGS 0x0L
FILEOS 0x0L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904E4"
        BEGIN
            VALUE "FileVersion", "0.2 beta\0"
            VALUE "CompanyName", "Athos s.r.l.\0"
            VALUE "FileDescription", "Movimentatore di poponi\0"
            VALUE "InternalName", "PUMPKIN.DLL\0"
            VALUE "LegalCopyright", "Copyright 1995-1997 Athos s.r.l.\0"
            VALUE "OriginalFileName", "PUMPKIN.DLL\0"
            VALUE "PrivateBuild", "Athos\0"
            VALUE "ProductName", "Simulatore di Omar\0"
            VALUE "ProductVersion", "0.1\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1252 
    END
END
Nel primo caso, *CREDO* si debba usare le funzioni GetFileVersionInfoSize e
GetFileVersionInfo. Non ne sono sicuro perche' non le ho mai usata, so solo
che ci sono. E poi VerQueryValue.
	DWORD infoHandle;
	char far *repond;
	unsigned int repondsize;
	struct
	{
    		DWORD Signature;
    		DWORD StructureVersion;
    		QWORD FileVersion;
    		QWORD ProductVersion;
    		DWORD FlagsMask;
    		DWORD Flags;
    		DWORD FileOS;
    		DWORD FileType;
    		DWORD FileSubType;
    		QWORD FileDate;
	} *versioninfo;
	infoSize = GetFileVersionInfoSize(filename, &infoHandle);
	/* Check for errors here! */
	buffer = malloc(infoSize);
	GetFileVersionInfo(filename, infoHandle, infoSize, buffer);
	VerQueryValue(buffer, "\", &repond, &repondsize);
	versioninfo = (void *)repond;
Disclaimer: 1) Non garantisco che funzioni, 2) Non l'ho provato, 3) Non so se si
possa portare in Visual Basic perche' non conosco il Visual Basic. D'altra parte
Windows questo ti passa, quindi bisogna fare di necessita' virtu'.
Se il VB non fornisce nessun metodo piu' elegante, e' possibile scrivere una DLL
che prenda un parametro stringa dal VB e gli passi un parametro di testo, con le
variabili sopra viste in ASCII, una per riga.
Leonardo
".signature": bad command or file name