Изменения в API v24

Автор p3452, 18.04.26, 18:42:01

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

p3452

Будет полезно для тех кто работает с цветом в 3D
Собственный_цвет_v24.png
+ Благодарностей: 1

p3452

Кстати, за ТАКОЕ, в серьезных фирмах "авторов" подобного - НАКАЗЫВАЮТ ! 

Vi2

Цитата: p3452 от 19.04.26, 08:41:39Кстати, за ТАКОЕ, в серьезных фирмах "авторов" подобного - НАКАЗЫВАЮТ ! 
АПИ 24 - это другое АПИ, несовместимое с АПИ 23 и ниже. Вот и вся загадка. Зачем так сделали? Видимо, решение руководства, которое якобы должно быть наказано.

Как аналогия - введение VB.NET вместо VB Микрософтом. Да и много чего дурного было сделано Микрософтом за всё прошедшее время. Пользователи АПИ - это последнее, на кого обращают внимание.

Чего стоит, кстати, использование всякого рода std в интерфейсах. А то, что они могут быть разные у пользователей, - это проблема самих пользователей. Я с этим столкнулся задолго до перехода на кроссплатформенное АПИ в использовании библиотеки C3D.

Vi2

Я посмотрел изменения, связанные с этим енумом.
    typedef [uuid(8967DE31-3B79-4D39-A37E-A5339DDB46B3), helpstring("Типы используемого цвета."), helpcontext(0x00001393)]
    enum {
        useColorUnknown = -1,
        useColorOur = 0,
        useColorOwner = 1,
        useColorSource = 2,
        useColorLayer = 3
    } UseColor;
    typedef [uuid(88C91E24-6CB2-408F-9418-FDDEC91BC73D), helpstring("Типы используемого цвета."), helpcontext(0x00001393), public]
    UseColor ksUseColorEnum;
До версии 22, потом убрали этот самый UseColor. Так что, скорее всего, Вы не читали изменения в интерфейсах в убираемых в последующих версиях определений.

Хотя в определениях функций, начиная с v17 (ниже у меня нет), везде используется именно ksUseColorEnum (ну или long).
    interface IColorParam7 : IDispatch {
        [id(0x00001771), propget, helpstring("Используемый цвет (цвет источника, цвет хозяина, собственный цвет)."), helpcontext(0x002e3bf1)]
        HRESULT UseColor([out, retval] ksUseColorEnum* PVal);
        [id(0x00001771), propput, helpstring("Используемый цвет (цвет источника, цвет хозяина, собственный цвет)."), helpcontext(0x002e3bf1)]
        HRESULT UseColor([in] ksUseColorEnum PVal);

p3452

#4
Все в кучу свалили...
1. Программы, использующие перечисление UseColor, работают вплоть до v24 !
2. Создали новое перечисление ksUseColorEnum (их право), но зачем УДАЛЯТЬ страое перечисление UseColor нарущая принцип совместимости ?
3. Создали новое перечисление, ладно, но, тогда уж и свойства объектов приведите с соотвествие...
4. Никакой ЭТО не "новый интерфейс", а перечисление, в старой библиотеке констант 3D.

Vi2

Цитата: p3452 от 19.04.26, 13:17:19Все в кучу свалили...
1. Программы, использующие перечисление UseColor, работают вплоть до v24 !
Ну так и тут будут работать, просто добавь синоним UseColor средствами своего языка.
Цитировать2. Создали новое перечисление ksUseColorEnum (их право), но зачем УДАЛЯТЬ страое перечисление UseColor нарущая принцип совместимости ?
Я же говорю, проблемы пользователя АПИ волнуют разработчиков от слова "совсем". Должна быть культура, но её или нет, или задавлена сроками и деньгами. А, может, кто-то "отомстил" Аскону таким образом.
*** Ну и тут нет принципа совместимости - это другой продукт ksAPI со всеми вытекающими. Было бы хорошо, если бы не нарушали там, где можно не нарушать.
Цитировать3. Создали новое перечисление, ладно, но, тогда уж и свойства объектов приведите с соотвествие...
А свойства объектов и соответствуют:
[id(0x00001771), propget, helpstring("Используемый цвет (цвет источника, цвет хозяина, собственный цвет)."), helpcontext(0x002e3bf1)]
HRESULT UseColor([out, retval] [b]ksUseColorEnum[/b]* PVal);
Цитировать4. Никакой ЭТО не "новый интерфейс", а перечисление, в старой библиотеке констант 3D.
Это я знаю, но не знаю историю изменений. Вот в С3Д в пресс-релизах или хидерах пишут, что такое-то и такое-то является obsolete или out-of-date и будет удалено из последующих версий, приходится считаться (реально удаляют, это ладно, меняют интерфейс и само поведение классов и функций!):
ЦитироватьAn obsolete function. The call will be removed in one of the next versions.
It's recommended to use new version of this function ...