эти ф-ции не ошибки выводят, а stack tarce-ы всех вызовов внутри кодогенератора.
PS: добавлен вывод ошибки в отладочную консоль с именем файла, строкой и позицией в ней
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
карма: 27 |
| ||
Голосовали: | iarspider |
Ответов: 1841
Рейтинг: 369
|
|||
Всем привет
![]() Вот и мои 5 копеек ![]() Всё же добил "кольцевание" и можно теперь при обнаружении замыкания на методе, вставлять альтернативный код а не лицезреть вылет среды. ![]() Как это можно реализовать в С# я без понятия, но в purebasic вроде процедурами ![]() Как работает: Объявляем глобальную переменную (test) в hiSys.hws Создаём массив в hiSys.hws с раннее объявленной переменной. У элемента в каждом методе, необходимо прописать 2 переменные:
В случае если id найден, прерываем цикл, присваиваем переменной CP число 1 и потом пишем альтернативный код, который будет печататься в случае кольцевания на этом методе:
В случае если в массиве id не найден, отрабатываем 2 код:
В итоге, вот эта конструкция из CNET:
![]() hiSys.hws
hiMessage.hws
Сейчас вот думаю, как это всё оптимизировать а также о возможных проблемах в будущем ![]() |
|||
карма: 1 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
CriDos, такие оптимизации надо делать на уровне компилятора RTCG, а не делать костыли в коде.
|
|||
карма: 10 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
CriDos писал(а): У элемента в каждом методе, необходимо прописать 2 переменные:это похоже на решение? |
|||
карма: 27 |
|
Ответов: 1821
Рейтинг: 168
|
|||
Непонимаю, почему у меня не вставляются и не компилируются схемы с интерфейсными компонентами?
|
|||
карма: 5 |
|
Ответов: 1841
Рейтинг: 369
|
|||
Dilma писал(а): это похоже на решение?Это решение, но оно естественно нуждается в оптимизации и применять его на данный момент нельзя ![]() ------------ Дoбавленo в 00.19: Думаю это мой окончательный вариант, т.к. больше мыслей по упрощению нет... Реализовал на примере элемента Message из пакета CNET. ![]() исходник hisys.hws добавил глобальную переменную cil. добавил массив cil. добавил функцию cil (Check_Infinite_Loop)
![]() С этими изменениями, следующая конструкция:
Вот ![]() |
|||
карма: 1 |
| ||
файлы: 2 | hisys.sha [8.2KB] [359], himessage.sha [669B] [352] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
CriDos, корректное решение это генерация ф-ции на элементе HubEx - т.е. тоже самое, что сегодня реализовано в FTCG MultiElment. Все остальное это костыли.
|
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
В класс sys добавлен метод add_use(module), который является рекомендованным способом добавления директив "using <модуль>;" в код.
|
|||
карма: 1 |
|
Ответов: 845
Рейтинг: 19
|
|||
Большая прозьба добавти
аналог
Из-за недостатков компонентов можно былобы решать проблему с помощью VBJScript, |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
GAv писал(а): Из-за недостатков компонентов можно былобы решать проблему с помощью VBJScript,Тогда уж работу со всеми COM-серверами унифицировать. Недостатки(-ток?) компонентов можно было бы компенсировать InlineCode. Про отладку пока вообще молчим. |
|||
карма: 1 |
|
Ответов: 845
Рейтинг: 19
|
|||
Ну чисто мне подуше VBJScript
![]() |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
GAv, я всё понимаю, но из C# вызывать VBJscript... Это уже извращением попахивает.
|
|||
карма: 1 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2022-09-20 02:08:28 |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
217.118.79.22 (GAv?), может проще нужный функционал в виде компонентов реализовать?
|
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
iarspider писал(а): может проще нужный функционал в виде компонентов реализовать?Если так важен синтаксис, сделать ему InlineCode на VB.NET, компилятор vbc.exe там рядом лежит, в папке фреймворка, вопрос только в том, как получать и линковать псевдокод (пока ещё не интересовался этим, но, по идее, должен быть способ). Хотя гораздо целесообразнее и логичнее сперва IC на C# прикрутить, IMHO. |
|||
карма: 1 |
|