2014-06-10 24 views
0

我有一個爲Compact Framework編譯的應用程序,我需要找到使用Delphi 2006的版本號。我使用下面的代碼。從Delphi PC應用程序獲取壓縮框架exe的版本號

function VersionNumber(ExeFile: string): string; 
var 
    Size: Longint; 
    Dummy: Cardinal; 
    Buffer: Pointer; 
    FileInfo: Pointer; 
begin 
    Size := GetFileVersionInfoSize(PChar(ExeFile), Dummy); 
    GetMem(Buffer, Size); 
    if (GetFileVersionInfo(PChar(ExeFile), Dummy, Size, Buffer)) then begin 
    //VerQueryValue(Buffer, '\\', FileInfo, Dummy); 
    //with PVSFixedFileInfo(FileInfo)^ do 
     //Result := IntToStr(dwFileVersionMS div $10000) + '.' + 
     // IntToStr(dwFileVersionMS mod $10000) + '.' + 
     // IntToStr(dwFileVersionLS div $10000) + ' (' + 
     // IntToStr(dwFileVersionLS mod $10000) + ')'; 
    end 
    else begin 
    Result := 'No version info available.'; 
    end; 
    FreeMem(Buffer, Size); 
end; 

如果我認爲使用Windows 7,我不能看到版本號有兩種,所以這並不奇怪,我不能從德爾福得到它的文件的詳細信息。

就在有人知道獲取版本號的方法時,我們將不勝感激。

UPDATE

此代碼是由一名前工作人員寫了那麼十年前。到目前爲止,它運行良好,但從未嘗試過爲Compact Framework編譯的可執行文件。

The GetFileVersionInfo函數返回false,所以我得到'No version info available。'。結果。

+0

看看這個問題http://stackoverflow.com/questions/1981297/version-information-missing-from-net-assembly-compact-framework-3-5-vs2008 – Graymatter

+0

你的代碼輸出是什麼 –

+0

這是毫無意義地尋找不存在的資源。我認爲你應該刪除所有不必要的代碼,並告訴我們你在找什麼。如果它不是版本資源,它是什麼?一些.net元數據。但是什麼? –

回答

相關問題