私はこのコードを持っています-それは私が例としてshell32.dllを使用しているファイルバージョンを(構造体に)返していますが、それらの意味を理解していないいくつかの値があり、説明を取得したいと思います。
ここにコードがあります:
void GetFileVersion( PCHAR pFilePath ,PVERSION pRetVersion)
{
DWORD dwSize = 0;
BYTE *pVersionInfo = NULL;
VS_FIXEDFILEINFO *pFileInfo = NULL;
UINT pLenFileInfo = 0;
/*getting the file version info size */
dwSize = GetFileVersionInfoSize( pFilePath, NULL );
if ( dwSize == 0 )
{
printf( "Error in GetFileVersionInfoSize: %d\n", GetLastError() );
return;
}
pVersionInfo = new BYTE[ dwSize ]; /*allocation of space for the verison size */
if ( !GetFileVersionInfo( pFilePath, 0, dwSize, pVersionInfo ) ) /*entering all info data to pbVersionInfo*/
{
printf( "Error in GetFileVersionInfo: %d\n", GetLastError() );
delete[] pVersionInfo;
return;
}
if ( !VerQueryValue( pVersionInfo, TEXT("\\"), (LPVOID*) &pFileInfo, &pLenFileInfo ) )
{
printf( "Error in VerQueryValue: %d\n", GetLastError() );
delete[] pVersionInfo;
return;
}
/*checking if the allocation succeeded */
if (NULL == pRetVersion)
{
printf("Allocation failed! \n" , GetLastError());
return;
}
pRetVersion->major = ( pFileInfo->dwFileVersionMS >> 16 ) & 0xffff ;
pRetVersion->minor = ( pFileInfo->dwFileVersionMS) & 0xffff;
pRetVersion->hotfix = ( pFileInfo->dwFileVersionLS >> 16 ) & 0xffff;
pRetVersion->other = ( pFileInfo->dwFileVersionLS) & 0xffff;
}
dwSizeの意味は何ですか?これはファイルのバージョンサイズだけですか?shell32.dllをクリックしている間、どこでそれを見ることができますか?
pLenFileinfo-このサイズは何ですか?
構造体を見ると
VS_FIXEDFILEINFO
、バージョン情報情報しかありません。たとえば、、などを取得するためのwaeはありますFile description
か?(「詳細」内にある他のすべてのプロパティ)?Date modified
Original filename
ありがとう !!!!!