Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать версию dll? / 3 сообщений из 3, страница 1 из 1
11.11.2008, 10:15
    #35645697
Ivan.Kokov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать версию dll?
Нужно понять, было ли установлено обновление у пользователя. Обновление как раз и заключается в замене dll. Конечно, можно ориентироваться на дату создания, размер, но это, вроде бы, "не айс" Как программно узнать версию dll?
...
Рейтинг: 0 / 0
11.11.2008, 10:53
    #35645823
u78
u78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать версию dll?
Cache, по моему, не представляет такой возможности.
Если надо со стороны Cache узнать версию, я бы предложил в самой dll реализовать функцию которая возвращала бы собственную версию.
На дельфи я воспользовался таким кодом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Function getVersion(ExeName : string) : string;
var
   Info: Pointer;
   InfoSize: DWORD;
   FileInfo: PVSFixedFileInfo;
   FileInfoSize: DWORD;
   Tmp: DWORD;
   Major1, Major2, Minor1, Minor2: Integer;
begin
// Get the size of the FileVersionInformatioin
    InfoSize := GetFileVersionInfoSize(PChar(ExeName), Tmp);
// If InfoSize =  0 , then the file may not exist, or
// it may not have file version information in it.
    if InfoSize =  0  then
    raise Exception.Create('Can''t get file version information for '  + ExeName);
// Allocate memory for the file version information
    GetMem(Info, InfoSize);
    try
// Get the information
    GetFileVersionInfo(PChar(ExeName),  0 , InfoSize, Info);
// Query the information for the version
    VerQueryValue(Info, '\', Pointer(FileInfo), FileInfoSize);
// Now fill in the version information
    Major1 := FileInfo.dwFileVersionMS shr  16 ;
    Major2 := FileInfo.dwFileVersionMS and $FFFF;
    Minor1 := FileInfo.dwFileVersionLS shr  16 ;
    Minor2 := FileInfo.dwFileVersionLS and $FFFF;
    finally
        FreeMem(Info, FileInfoSize);
    end;
  result := format('%d.%d.%d.%d', [Major1, Major2,Minor1, Minor2]);
  exit;
end;

А в Cache вызывать с помощью $ZF
...
Рейтинг: 0 / 0
11.11.2008, 12:50
    #35646328
Ivan.Kokov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать версию dll?
u78, спасибо за совет, воспользуюсь
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать версию dll? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]