ďťż

Ładny brzuch

Kompilator (w opcji) umieszcza numer wersji i kompilacji projektu.
Jak ją odczytać ?

Mam coś takiego ale niestety nie odczytuje poprawnie wersji :mad:

W kompilatorze ustawione jest np. 1.2.3.4, a program pokazuje 1.0.0.0. :sick:
String path;    struct TransArray{       WORD LanguageID, CharacterSet;    };    DWORD VerInfo, VerSize;    HANDLE MemHandle;    LPVOID MemPtr, BufferPtr;    UINT BufferLength;    TransArray *Array;    char QueryBlock[40];    // Pobierz nazwę oraz numer wersji produktu z informacji o wersji aplikacji.    path =  Application->ExeName;    VerSize = GetFileVersionInfoSize(path.c_str(), &VerInfo);    if (VerSize > 0) {        MemHandle = GlobalAlloc(GMEM_MOVEABLE, VerSize);        MemPtr = GlobalLock(MemHandle);        GetFileVersionInfo(path.c_str(), VerInfo, VerSize, MemPtr);        VerQueryValue(MemPtr, "\\VarFileInfo\\Translation", &BufferPtr,                      &BufferLength);        Array = (TransArray *)BufferPtr;        // Pobierz nazwę produktu.        wsprintf(QueryBlock, "\\StringFileInfo\\%04x%04x\\ProductName",                 Array[0].LanguageID, Array[0].CharacterSet);        VerQueryValue(MemPtr, QueryBlock, &BufferPtr, &BufferLength);        // Ustaw właściwość Caption etykiety z nazwą produktu.        ProductName->Caption = (char *)BufferPtr;        // Pobierz numer wersji produktu.        wsprintf(QueryBlock, "\\StringFileInfo\\%04x%04x\\ProductVersion",                 Array[0].LanguageID, Array[0].CharacterSet);        VerQueryValue(MemPtr, QueryBlock, &BufferPtr, &BufferLength);        // Ustaw właściwość Caption etykiety z numerem wersji.        Version->Caption = (char *)BufferPtr;        GlobalUnlock(MemHandle);        GlobalFree(MemHandle);    } else {        ProductName->Caption = "";        Version->Caption = "";    }
Użytkownik PabloX edytował ten post 01 grudzień 2005, 21:38
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •