Вверх ↑
Ответов: 4660
Рейтинг: 765
#1: 2025-04-19 21:32:14 ЛС | профиль | цитата
Вот архив. Вроде, актуальная версия, если за последнюю неделю ничего не менялось.

Чем новый Share.pas отличается от оригинального:
1) Добавлены некоторые типы данных, которые имеют разную размерность для 32/64 бит компиляторов или разный тип строк-символов (AnsiString/WideString).
Или которые присутствуют в новых компиляторах/KOL, но нет в текущих.
С помощью директив компиляции включается нужный тип в зависимости от компилятора.
Поскольку изменились некоторые объявления функций с использованием новых типов, понадобилось поправить некоторые компоненты, которые находятся в архиве. Поправки касались только наименований типов в компонентах, использующих класс Share.TArray.

Типы PKOLStrList/PKOLStrListEx - идентичны PStrList/PStrListEx в текущем пакете, но в новом работают со строками AnsiString/WideString в зависимости от ANSI/юникодного компилятора.

2) Были добавлены глобальная переменная DefaultSystemCodePage, некоторые функции, активно используемые в новом пакете.
В том числе, делфийские варианты тех, которые были на ассемблере, для 64-битного компилятора.
Поскольку в официальном пакете они не используются, то на работу влиять никак не будут

3) Из необязательного
- добавилась функция dtInt64(var Data: TData; Value: Int64),
которая позволяет 32-битному компилятору выдавать Int64 в поле Real, как-будто вызвана функция dtReal().
Нигде в официальном пакете пока не используется, но в новом это поволяет выдавать размер и позицию в файловых стримах больше 2 Гб на 32-битных компиляторах, что поддерживается новой KOL (в официальном пакете это тоже можно частично реализовать без поддержки в KOL).
Без этой функции Int64 нужно сначала присвоить в переменную типа Real затем её подать на dtReal().
Потому что без этого Int64 не "кастится" в Real: dtReal(_data, Real(I)).
- добавилась LoadResStr(). Использовалась кодогенератором в новом пакете, с недавнего времени уже нет.

Для текущих компиляторов ничего не должно особенно поменяться.
Все файлы находятся в папке code, CodePages.pas нужно добавить в SVN.

Подмените файлы у себя, кто хочет, в папке code и понаблюдайте некоторое время не появится ли каких-либо проблем. Можно предлагать всем, кому нужен сторонний компонент, работающий в старом и новом пакете, а автору компонента - сразу делать версию для нового пакета.

Потом можно будет залить на SVN.
карма: 26

0
файлы: 1Share_pas_from_new_FPC.zip [31.4KB] [104]
Редактировалось 1 раз(а), последний 2025-04-19 21:35:40