Вверх ↑
Этот топик читают: Гость
Ответов: 54
Рейтинг: 1
#46: 2017-01-03 14:24:52 ЛС | профиль | цитата
Dilma писал(а):
Нет, нужно лишь удалить все из этого модуля и оставить только пустые ф-ции, которые там обязаны там быть.


Сначала по этому поводу возникло пачка вопросов, но в справке уже вычитал... ..\HiAsm\Elements\RTCG_pack\code\hiSys.hws должен быть обязательно с необходимым, определённым набором функций. Которые вызываются из CodeGen.dll... С этим мне ещё предстоит разобраться, по тренироваться... и т.д.

Так или иначе пустышку пакет RTCG-pack запустил без ошибок. Огромное спасибо!!!

Чуть позже, первые наработки выложу на всеобщее обсуждение.

Редактировалось 1 раз(а), последний 2017-01-03 14:29:15
карма: 0

0
Ответов: 54
Рейтинг: 1
#47: 2017-01-04 01:01:50 ЛС | профиль | цитата
Dilma писал(а):
Вверху есть кнопка помощь, там находится справка RTCG


Внимательно изучаю справку RTCG и файлы (hiEntryPoint.hws hiSys.hws) из пакета CNET. И прихожу к выводу, что не все зарезервированные слова в RTCG описаны в справке.
Например - this. На сколько я помню из С++ : - Зарезервированное слово this предназначено для получения ссылки объекта на самого себя, доступной внутри методов класса или структуры. А в RTCG его как понимать? Это самое заметное. Просмотрев внимательно, нашёл ещё с десяток слов, которые не имена (переменных, функций), а скорее всего методы объектов, которых в справке не нашёл.
карма: 0

0
Администрация
Ответов: 15278
Рейтинг: 1514
#48: 2017-01-04 01:10:35 ЛС | профиль | цитата
this описан тут http://forum.hiasm.com/wiki/5103
Часть функций из этого пакета может быть не описана, т.к. там используется форк RTCG и изучасть когоденератор по его элементам не совсем корректно.

Редактировалось 1 раз(а), последний 2017-01-04 01:11:52
карма: 26
0
Ответов: 54
Рейтинг: 1
#49: 2017-01-04 01:32:06 ЛС | профиль | цитата
Dilma писал(а):
там используется форк RTCG и изучасть когоденератор по его элементам не совсем корректно.


Так ведь примерчики, где то подглядеть нужно... Так быстрее усваивается механизм.
карма: 0

0
Администрация
Ответов: 15278
Рейтинг: 1514
#50: 2017-01-04 10:54:46 ЛС | профиль | цитата
Рекомендую почитать почитать эти две темы, где все подробно описано
http://forum.hiasm.com/topic/57420
http://forum.hiasm.com/topic/57432
карма: 26
0
Ответов: 54
Рейтинг: 1
#51: 2017-06-02 09:17:17 ЛС | профиль | цитата
Каким образом можно проверить переменную, на то что она пустая или в ней есть какое либо значение? В FTCG было так

 if(Data_Sream == "")
// тут что то делаем если Data_Sream имеет пустое значение
else
// тут что то делаем если Data_Sream имеет какое либо значение
end

В RTCG такой манёвр не прокатывает?

Редактировалось 4 раз(а), последний 2017-06-02 09:33:39
карма: 0

0
Администрация
Ответов: 15278
Рейтинг: 1514
#52: 2017-06-02 09:55:48 ЛС | профиль | цитата
Если под пустым имеется ввиду "не задано вообще", то используется isnull(), если же проверять надо именно на пустую строку, то все точно так же. Пример:


func test(data)
trace(isnull(data), data ? 1 : 0)
end

...

test() // выведет 1 0
test("") // выведет 0 0
test("test") // выведет 0 1
карма: 26
0
Ответов: 54
Рейтинг: 1
#53: 2017-06-03 20:58:49 ЛС | профиль | цитата
да... isnull() для меня не новость. Я это тоже пробовал. https://github.com/brown-aleks/RTGC_pack/blob/master/RTCG_pack/Example/hiRTCG_isnull.hws

И вот результат:
Подготовка к сборке проекта...
Генерация кода целевого языка
Proc undefined
Proc undefined
0
Proc undefined
0
Proc undefined
1
Proc undefined
1
Компоновка проекта...

На слове isnull() запинается и выдаёт - Proc undefined

А по поводу data ? 1 : 0 Пробую взять значение из поля свойств элемента, результат зависит от типа поля элемента. Но ни как не на то что содержится в этом поле какое либо значение или нет.

И из поля свойств элемента типа List значение, самое первое, индекс которого равен "Ноль" получить вообще ни как не удаётся. Сколько вариантов я не пробовал ответ один Proc undefined

Редактировалось 7 раз(а), последний 2017-06-05 23:32:39
карма: 0

0
Администрация
Ответов: 15278
Рейтинг: 1514
#54: 2017-06-03 23:19:45 ЛС | профиль | цитата
brown-aleks писал(а):
На слове isnull() запинается и выдаёт - Proc undefined

Убедитесь, что установлена последняя версия кодогенератора https://github.com/hiasmstudio/RTCG

brown-aleks писал(а):
Пробую взять значение из поля свойств элемента, результат зависит от типа поля элемента

Если значение берется из свойства элемента, то проверять надо поле isdef у этого свойства:
trace(this.props("MyProperty").isdef)
Подробнее можно почитать тут property

Если как у вас в примере данные нужно получать не только из свойства, но и из потока или точки, то проверять надо только по isnull().

brown-aleks писал(а):
И из поля свойств элемента типа List значение, самое первое, индекс которого равен "Ноль" получить вообще ни как не удаётся

Значения свойств типа List не рекомендуется получать через d() - т.к. первый элемент списка имеет индекс 0, то кодогенератор считает его пустым и перекрывает данными из потока. Если вы уверены, что свойство List должно переопределяться данными из потока или точки, то лучшее решение это в начало списка вставить пункт (не выбрано), тогда и кодогенератор будет правильно работать и у пользователь будет уверен, что раз он свойство задал явно, то из потока его точно ничего не перекроет.

Редактировалось 2 раз(а), последний 2017-06-03 23:20:43
карма: 26
1
Голосовали:brown-aleks
Ответов: 54
Рейтинг: 1
#55: 2017-06-04 08:17:25 ЛС | профиль | цитата
Dilma писал(а):
Убедитесь, что установлена последняя версия кодогенератора https://github.com/hiasmstudio/RTCG


Спасибо за оперативный и подробный ответ. Вы бы не могли выложить последнюю версию код-генератора в компилированном виде... Я за инструменты С++ и ему подобных уже лет 15 не брался. Технологии скорее всего ушли далеко вперёд.

Редактировалось 2 раз(а), последний 2017-06-04 08:18:40
карма: 0

0
Администрация
Ответов: 15278
Рейтинг: 1514
#56: 2017-06-04 18:44:17 ЛС | профиль | цитата
Пробуйте.
карма: 26
0
Ответов: 54
Рейтинг: 1
#57: 2017-06-04 18:49:27 ЛС | профиль | цитата
Dilma писал(а):
Собирается все этим http://www.mingw.org/


Вообще не разобрался как эту чудо штуку запустить... Это точно выше моего уровня...
карма: 0

0
Ответов: 54
Рейтинг: 1
#58: 2017-06-04 21:20:43 ЛС | профиль | цитата
Dilma писал(а):
Пробуйте.


Я подменил CodeGen.dll на новый...
результат:

Ошибка компиляции, код [1]:библиотека не найдена

Подменил обратно на старый и по прежнему на слове isnull() заикается - Proc undefined

И ещё заметил, новый CodeGen.dll в два раза легче пред идущего... не слишком ли вы его урезали?
карма: 0

0
Администрация
Ответов: 15278
Рейтинг: 1514
#59: 2017-06-04 21:57:51 ЛС | профиль | цитата
brown-aleks писал(а):
Я подменил CodeGen.dll на новый...
результат:

Ну очевидно с прошлого раза ничего не изменилось
карма: 26
0
Ответов: 54
Рейтинг: 1
#60: 2017-06-04 22:14:34 ЛС | профиль | цитата
Dilma писал(а):
Ну очевидно с прошлого раза ничего не изменилось


Ага... намёк понял. Типа тему начни читать с начала. Только за сегодня я её раз пять перечитал, аж некоторые посты на изусть пересказываются. А как заставить всё это работать, ни как не пойму.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)