Был этап связанный с притиркой Clarion к AnyScreen. Поменялась логика некоторых шаблонов, компилятор стал более требователен к "<", ну и куча всего по-мелочи. Есть подозрение, что-что-то намудрили и с управлением памятью (ещё более тормозит когда программа отжирает более 1Гб оперативки), Если бы не необходимость запуска online-версии, то, может быть и сидел на старой. Пришлось проламываться через те проблемы. Теперь всё тьфу-тьфу-тьфу нормально.
Clarion 11-12
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Clarion 11-12
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7378
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Clarion 11-12
Хорошо. Спасибо. Будем потихоньку пробовать работать ...
За теми кто отстал - не возвращаться. (С) Кодекс
Clarion 11-12
Были рабочие вещи, поискал, но не нашелГубин Игорь писал(а): ↑19 Июнь 2022, 17:05А краткий ликбез можно? Вроде всё сделал, но творится невесть что. Или у меня крыша едет, или у компилятора C++ из поставки Clariona.
Короче, надо функцию типа
ClaFunc(*CString,Real,Real),ULong вызвать из C++
Нужен пример описания на C и пример параметров функции в Cla
ClsFunc(*CString,Real,Real),ULong,Pascal
unsigned long ClsFunc(char**, double, double);
char *FStr="First String";
double v1 = 2.0;
double v2=3.5;
unsigned iret;
iret = ClsFunc(&FStr, v1, v2);
P.S. Вариант unsigned long ClsFunc(char**, unsigned, double, double); где второй параметр длина, я, тоже, пробовал.
Хорошо бы тестовый проект на Клаше, чтобы можно было попробовать.
Там вся фишка в соглашениях по передаче параметров, они должны быть одинаковые.
Есть передача через стэк, бывает С-шная, а бывает Паскалевская. Есть передача через регистры, есть через регистры+стэк.
В дельфи указывается в описании процедуры, например stdcall - паскаль. Для С вроде так и пишется С. В Клашином С через прагмы. В MS не помню
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Clarion 11-12
В приложении. Но я, после мучений, решил нанять мальчика студента, пусть напишет библиотечку под VC. С одной стороны я лишаюсь возможности её быстро модифицировать, но с другой - поджимают сроки. Это копеечная часть большого проекта.
- Вложения
-
- SendLibrary.zip
- (8.39 КБ) 66 скачиваний
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7378
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Clarion 11-12
Clarion 11.1 (все релизы, включая крайний)
-------------------------------------------------------
Если окно Report ProgressWindow имеет аттрибут MDI - начинаются подвисания / GPF
"Error: memory block free'd twice" при выходе из окна предварительного просмотра отчёта.
Проявление где-то 1 к 10, но стабильно на любых отчётах, включая штатные Example Clarion.
В Clarion 11.0 - эта проблема отсутствует ...
-------------------------------------------------------
Если окно Report ProgressWindow имеет аттрибут MDI - начинаются подвисания / GPF
"Error: memory block free'd twice" при выходе из окна предварительного просмотра отчёта.
Проявление где-то 1 к 10, но стабильно на любых отчётах, включая штатные Example Clarion.
В Clarion 11.0 - эта проблема отсутствует ...
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Clarion 11-12
А там нет, случайно, несовпадения версий dll? Типичная ситуация, когда программа скомпилировна под 11.1, а библиотеки от предыдущих версий. Они там под AnyScreen много чего попеределывали. Ошибки бы они с такой интенсивностью правили...
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7378
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Clarion 11-12
Исключено. Как я понимаю, вот это место хотели сделать полностью совместимым
с шаблонами ABC, но работающим теперь и под AnyScreen ...
FEATURE: New public IRpt interface for callbacks invoked by the RTL during report generation
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Clarion 11-12
Я принципиальный легасник ))))Игорь Столяров писал(а): ↑27 Июнь 2022, 9:48 с шаблонами ABC, но работающим теперь и под AnyScreen ...
Это я только кажусь дураком! На самом деле я полный идиот!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4618
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Clarion 11-12
У тебя же стандартные шаблоны, которые тоже юзают abc классы. У них там небольшая задержка может быть между изменениями в abc и clarion шаблонах. Если, конечно, дело не на уровне rtl. Так что жди, скоро и тебе прилетит.Губин Игорь писал(а): ↑27 Июнь 2022, 9:58Я принципиальный легасник ))))Игорь Столяров писал(а): ↑27 Июнь 2022, 9:48 с шаблонами ABC, но работающим теперь и под AnyScreen ...
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7378
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Clarion 11-12
А может быть и нет. Дело в том, что во всех примерах окна Report ProgressWindow - NotMDI.
Более того, все настройки MDI в Report - рудимент (DEPRECATED).
А потому, если самостоятельно флаг MDI Window не включать - то проблемы, как бы и нет ...
Вообще это место (Report ProgressWindow + MDI) всегда было проблемным.
Можно вспомнить как рушились через раз отчёты в потоках C55 ...
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Clarion 11-12
1. Не а... У меня не используются progress в репортах
2. Ты не совсем прав. Там может быть задержка с использованием специфических классов и возможностей. Но сама структура шаблонов и кодов весьма различна.
Это я только кажусь дураком! На самом деле я полный идиот!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4618
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Clarion 11-12
Вообще, да, mdi в данном месте выглядит не очень логично. Поэтому, видимо, забыли/забили и не протестили.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7378
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Clarion 11-12
Таки да ... Но иногда в запросе на создание отчёта - бывает нужно вызвать
календарик для ввода даты. Или окно со списком для выбора значения фильтра.
И в этом случае - все вызываемые из ReportWindow окна теперь тоже должны быть не MDI ...
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4618
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Clarion 11-12
Можно вызов в скобки взять из system{prop:threading}=0 и system{prop:threading}=1. Только под энискрином так делать не надо, оно повиснет.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4618
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Clarion 11-12
На мое восприятие, правильнее вначале запросить все параметры, а потом уже вызывать ProgressWindow .
C6/C11, ШВС, tps/btrieve.