GetFileVersion in CBuilder 10.3.3 - Problem



  • Hallo,
    versuche gerade die Version meines Programms zur Laufzeit zu ermitteln. Habe im CBuilder 2010 diesen Code dazu genutzt:

    // Funktion liefert einen AnsiString der Versionsnummer der übergebenen Datei
    
      // prüfen ob überhaupt Info da sind
      DWORD      nSize  = GetFileVersionInfoSize(FileName.c_str(), 0);
    
      AnsiString Result("");
    
      if (nSize)
      {
        char *pInfo = new char[nSize];
    
        // Versionsinfo auslesen
        GetFileVersionInfo(FileName.c_str(), 0, nSize, pInfo);
    
        VS_FIXEDFILEINFO *FileInfo;
        UINT              uLen;
    
        // Root-Information auslesen
        VerQueryValue(pInfo, "\\", (void**) &FileInfo, (PUINT) &uLen);
    
        // Speicher freigeben
        delete [] pInfo;
    
        // Versionsnummer bilden
        Result.sprintf("%d.%d.%d.%d",
                       HIWORD(FileInfo->dwFileVersionMS),
                       LOWORD(FileInfo->dwFileVersionMS),
                       HIWORD(FileInfo->dwFileVersionLS),
                       LOWORD(FileInfo->dwFileVersionLS));
      }
    

    Leider erhalte ich im neuen CBuilder 10.3.3 diese Fehlermeldung:

    [bcc32c Fehler] UnMain.cpp(629): no matching function for call to 'GetFileVersionInfoSizeW'
      winver.h(125): candidate function not viable: no known conversion from 'char *' to 'LPCWSTR' (aka 'const wchar_t *') for 1st argument
    

    Gibt es da im neuen Builder ggf. eine andere Möglichkeit?

    Danke
    Torsten



  • @torsten_156 sagte in GetFileVersion in CBuilder 10.3.3 - Problem:

        char *pInfo = new char[nSize];
    

    Was soll denn das da!?


    @torsten_156 sagte in GetFileVersion in CBuilder 10.3.3 - Problem:

    no known conversion from 'char *' to 'LPCWSTR' (aka 'const wchar_t *') for 1st argument
    

    Entweder GetFileVersionInfoA() nehmen oder als ersten Parameter einen Wide-String geben.


Anmelden zum Antworten