powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать версию dll?
3 сообщений из 3, страница 1 из 1
Как программно узнать версию dll?
    #35645697
Ivan.Kokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно понять, было ли установлено обновление у пользователя. Обновление как раз и заключается в замене dll. Конечно, можно ориентироваться на дату создания, размер, но это, вроде бы, "не айс" Как программно узнать версию dll?
...
Рейтинг: 0 / 0
Как программно узнать версию dll?
    #35645823
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как программно узнать версию dll?
    #35646328
Ivan.Kokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
u78, спасибо за совет, воспользуюсь
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать версию dll?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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