Кто пользуется подсистемой
Free, наверняка замечал, что есть проблемы с открытием картинок с юникодными названиями. Эта серьезная недоделка может застопорить начинающего разработчика и испортить впечатление от библиотеки, поэтому решил поделиться решением.
Для себя использовал следующее решение. В модуле FreeUtils нужно немного подправить процедуру Load.
Код:
PROCEDURE Load* (fname: ARRAY OF CHAR): FIBITMAP;
VAR
res: BOOLEAN;
type: Dll.IMAGE_FORMAT;
tdib: Dll.FIBITMAP;
BEGIN
type := Dll.GetFileTypeU(fname, 0);
IF type = Dll.FIF_UNKNOWN THEN
(* Out.String("Unkonwn Format: "); Out.Int(type, 0); Out.Ln; *)
type := Dll.GetFIFFromFilenameU(fname)
END;
IF (type # Dll.FIF_UNKNOWN) & Dll.FIFSupportsReading(type) THEN
(* Out.Int(type, 0); Out.String(" Supported reading: "); Out.Ln; *)
tdib := Dll.LoadU(type, fname, 0);
RETURN tdib
ELSE
RETURN NIL
END
END Load;