GetFileVersionInfoSize



  • Das geht!

    LPTSTR szBuffer = "C:\\Uni.dll";
    
    DWORD dwHandle; 
    DWORD dwSize; 
    
    dwSize = GetFileVersionInfoSize(szBuffer, &dwHandle); 
    //Beim debuggen steht in szBuffer = "C:\Uni.dll";
    

    und das nicht! Warum?

    DWORD dwHandle; 
    DWORD dwSize; 
    static char BASED_CODE szFilter[] = "DynamicLinkLibrary (*.dll)|*.dll||";
    CFileDialog dlg(TRUE,0 ,0 ,0 ,szFilter,0);
    CString sName;
    CFile File;
    CFileStatus FileStatus;
    
    if (IDOK ==dlg.DoModal())
    {
    	sName = dlg.GetFileName();
    }
    File.Open(sName,0);
    File.GetStatus(FileStatus);
    dwSize = GetFileVersionInfoSize(FileStatus.m_szFullName, &dwHandle); 
    //Beim debuggen steht in FileStatus.m_szFullName= "C:\Uni.dll";
    

    Gruß Intery



  • was hälst du davon

    dwSize = GetFileVersionInfoSize(&FileStatus.m_szFullName, &dwHandle);
    


  • miller_m schrieb:

    was hälst du davon

    dwSize = GetFileVersionInfoSize(&FileStatus.m_szFullName, &dwHandle);
    

    ne geht auch nicht

    habe jetzt gerade mal das probiert

    wie oben nur plus (Neue Zeile) und so geht es auch

    strcpy(FileStatus.m_szFullName, "C:\\Uni.dll");//<-- Neue Zeile
    dwSize = GetFileVersionInfoSize(FileStatus.m_szFullName, &dwHandle);
    //Beim debuggen steht in FileStatus.m_szFullName= "C:\Uni.dll"; (wie oben auch)
    

    nur wie geht es ohne absolutem Pfad?



  • Was genau ist jetzt das Problem 😕



  • intery schrieb:

    nur wie geht es ohne absolutem Pfad?



  • SetCurrentDirectory(TEXT("C:\\"));
    dwSize = GetFileVersionInfoSize(TEXT("uni.dll"), &dwHandle);  // jetzt ohne Pfad
    

    Ganz ohne Pfad geht es natürlich nicht, gedankenlesen kann der Rechner zum Glück noch nicht. Oder woher soll GetFileVersionInfoSize wissen, wo die Datei liegt?



  • Ich hab's

    File.close();
    

    das fehlte noch!

    oh man da hätte ich doch gleich darauf kommen müssen 😃


Anmelden zum Antworten