VersionInfo Ressource



  • Hallo Ihr,

    ich hoffe, ich bin hier im richtigen Forum.
    Es gibt ja eine Version Ressource dazu habe ich mal zwei Fragen.

    1. Wie kann ich die Daten aus der Ressource in meinem Programm anzeigen. Es geht wohl mit VerQueryValue, aber ich verstehe den MSDN Beitrag nicht so richtig. Kann vielleicht einer von Euch mal ein Beispiel zeigen, wie man die Version, Anwendungsname und Firma auslesen kann.

    2. Ich würde gerne bei jeder Build Erstellung die Build Version in der Versionsressource hochzählen lassen. Hat das schon jemand gemacht oder weiss wie man es macht. Ich benutze das Visual Studio .net.

    Vielen Dank!

    Pedro

    [ Dieser Beitrag wurde am 22.08.2002 um 20:53 Uhr von Pedro15 editiert. ]



  • Das anzeigen habe ich jetzt so realisiert.

    Jetzt brauch ich nur das automatische Hochzählen der Build-Nr., wenn man das Projekt neu erstellt.

    Hat jemand eine Idee oder im optimalen Fall schon ein Macro dafür (nicht für 6er Version sondern für .net)

    Danke Pedro

    char szBuffer[256];
    
                if (GetModuleFileName(NULL,szBuffer,sizeof(szBuffer)-1))
                {
                    DWORD   fvh, 
                            fvlen = GetFileVersionInfoSize(szBuffer,&fvh);
                    VOID    *fv = NULL;
                    if (fvlen)
                        fv = malloc(fvlen);
                    if (fv != NULL)
                    {
                        if (GetFileVersionInfo(szBuffer,fvh,fvlen,fv))
                        {
                            UINT vblen;
                            VOID *vb;
                            VS_FIXEDFILEINFO *version= NULL;
                            if (VerQueryValue(fv,"\\",&vb,&vblen))
                                version = (VS_FIXEDFILEINFO*)vb;
                            if (VerQueryValue(fv,"\\StringFileInfo\\040704B0\\ProductName",&vb,&vblen))
                                mProductName = ((char*)vb);
    
                        }
                    }
                    free(fv);
    
                }
    


  • --> Visual C++



  • Stimmt, das ist compilerspezifisch. 🙂


Anmelden zum Antworten