View previous topic :: View next topic |
Author |
Message |
skole
Joined: 31 Dec 2004 Posts: 162 Location: Россия, Оренбург
|
(Separately) Posted: Sat Feb 12, 2005 01:44 Post subject: Проблемы с считыванием данных |
|
|
При попытке считать данные о файле какого-либо плагина (комментарий или хотя бы копирайт) - в ответ получаю пустое поле, хотя по свойствам данные есть, алгоритм работает с другими типами фалов
Кто сталкивался, помогите с проблемой...
язык Delphi |
|
Back to top |
|
|
beketata
Joined: 26 Feb 2005 Posts: 8
|
(Separately) Posted: Sat Feb 26, 2005 12:58 Post subject: Re: Проблемы с считыванием данных |
|
|
skole wrote: | При попытке считать данные о файле какого-либо плагина (комментарий или хотя бы копирайт) - в ответ получаю пустое поле, хотя по свойствам данные есть, алгоритм работает с другими типами фалов
Кто сталкивался, помогите с проблемой...
язык Delphi |
У меня в С++ все работает нормально.
Если используешь функцию VerQueryValue(), то обязательно нужно заполнять "lang-codepage" в строке " \StringFileInfo\lang-codepage\string-name".
Хотя странно, что с другими типами файлов твой алгоритм работает ... |
|
Back to top |
|
|
skole
Joined: 31 Dec 2004 Posts: 162 Location: Россия, Оренбург
|
(Separately) Posted: Thu Mar 03, 2005 08:00 Post subject: |
|
|
beketata
так в том и дело, да я использую VerQueryValue() со всеми прописками, а в результате получаю только FileType... |
|
Back to top |
|
|
beketata
Joined: 26 Feb 2005 Posts: 8
|
(Separately) Posted: Thu Mar 03, 2005 19:17 Post subject: |
|
|
При попытке считать данные о файле какого-либо плагина (комментарий или хотя бы копирайт) - в ответ получаю пустое поле.
... а в результате получаю только FileType...
FileType - это элемент структуры VS_FIXEDFILEINFO, в ней отсутствует "...комментарий или хотя бы копирайт" ...
Вот выдержка из MSDN:
Описание второго параметра функции VerQueryValue( , , , )
lpSubBlock
...[in] Pointer to a zero-terminated string specifying which version-information value to retrieve. The string must consist of names separated by backslashes (\) and it must have one of the following forms.
..........
\StringFileInfo\lang-codepage\string-name
Specifies a value in a language-specific StringTable structure.
..........
The string-name name must be one of the predefined strings described in the following Remarks section.
..........
А вот те самые "predefined strings":
Comments
InternalName
ProductName
CompanyName
LegalCopyright
ProductVersion
FileDescription
LegalTrademarks
PrivateBuild
FileVersion
OriginalFilename
SpecialBuild
Сначала в lpSubBlock нужно передать строку "\VarFileInfo\Translation"
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
// Read the list of languages and code pages.
VerQueryValue(pBlock,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);
и получив результат о lang-codepage, последовательно разбирать необходимые "predefined strings":
StringCchPrintf(SubBlock, 50,
TEXT("\\StringFileInfo\\%04x%04x\\predefined string"),
lpTranslate.wLanguage,
lpTranslate.wCodePage);
VerQueryValue(pBlock,
SubBlock,
&lpBuffer,
&dwBytes); |
|
Back to top |
|
|
skole
Joined: 31 Dec 2004 Posts: 162 Location: Россия, Оренбург
|
(Separately) Posted: Fri Mar 04, 2005 10:26 Post subject: |
|
|
beketata
спасибо за советы, буду думать в этом направлении |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|