SORU
2 HAZİRAN 2009, Salı


Nasıl bir DLL sürümü almak ya da EXE dosyası programlama yoluyla mı?

Ürün sürümü ve DLL ya da EXE dosyası C veya C yerel Win32 API kullanarak dosya sürümü gerekiyor . EdiyorumdeğilWindows sürümü için arıyorum, ama sürüm numarasına sağ tıklayarak bir DLL dosyası üzerinde gördüğünüz, seçerek "Özellikler", sonra bakıyor "Ayrıntılar" sekmesini. Bu dörtlü bir sürüm numarası x noktalı genellikle.x.x.x.

CEVAP
2 HAZİRAN 2009, Salı


GetFileVersionInfo API kullanabilirsiniz.

Web sitesinde Using Version Information bkz.

Örnek:

DWORD  verHandle = NULL;
UINT   size      = 0;
LPBYTE lpBuffer  = NULL;
DWORD  verSize   = GetFileVersionInfoSize( szVersionFile, &verHandle);

if (verSize != NULL)
{
    LPSTR verData = new char[verSize];

    if (GetFileVersionInfo( szVersionFile, verHandle, verSize, verData))
    {
        if (VerQueryValue(verData,"\\",(VOID FAR* FAR*)&lpBuffer,&size))
        {
            if (size)
            {
                VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer;
                if (verInfo->dwSignature == 0xfeef04bd)
                {

                    // Doesn't matter if you are on 32 bit or 64 bit,
                    // DWORD is always 32 bits, so first two revision numbers
                    // come from dwFileVersionMS, last two come from dwFileVersionLS
                    TRACE( "File Version: %d.%d.%d.%d\n",
                    ( pFileInfo->dwFileVersionMS >> 16 ) & 0xffff,
                    ( pFileInfo->dwFileVersionMS >>  0 ) & 0xffff,
                    ( pFileInfo->dwFileVersionLS >> 16 ) & 0xffff,
                    ( pFileInfo->dwFileVersionLS >>  0 ) & 0xffff
                    );
                }
            }
        }
    }
    delete[] verData;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • RocketJump

    RocketJump

    22 ŞUBAT 2006