today I tried to use fileVersion::getFileVersionInfo to get the version of a dll and got strange results. After some checks I saw that the function is now using 64 bit numbers and somehow the extraction of the version number does not work. I changed the code of the function in my copy of Vip back to the old 7.1 code and now for me it works again.
This is what i did, please have a look.
Code: Select all
clauses getFileVersionInfo(FileName) = fileVersionInformation(A, B, C, D) :- VerInfoBin = loadVersionInfo(FileName), vs_fixedfileinfo(_Signature,_StrucVersion,FileVersion,_ProductVersion,_FileFlagsMask,_FileFlags,_FileOS,_FileType,_FileSubtype,_FileDate) = getRootKey(VerInfoBin), % fc(D, C, B, A) = uncheckedConvert(fc, ptr(FileVersion)). bit::getUnsigned64bytes(FileVersion, Lo, Hi), C = bit::getHigh16of32(Hi), D = bit::getLow16of32(Hi), A = bit::getHigh16of32(Lo), B = bit::getLow16of32(Lo).