OberonCore
https://forum.oberoncore.ru/

Массивы, definition модуль
https://forum.oberoncore.ru/viewtopic.php?f=30&t=743
Страница 1 из 2

Автор:  DevIce [ Среда, 14 Ноябрь, 2007 17:54 ]
Заголовок сообщения:  Массивы, definition модуль

Начну с того, что пользуюсь компилятором POW!, модификация языка- Red Chili Oberon-2 v.1.35a. Подскажите, как можно заполнить массив не поэлементно, а сразу (по типу си: array[]={1,6,79})? И еще, интересует, как объявить процедуру из дллки? В хелпе написано- PROCEDURE [_APICALL], вот только примера нет и понять я не смог.. Ну и еще одна проблема, можно как-нибудь создать константу со значением $7070(начинающегося со знака $). Компилятор не дает. З.Ы. Надеюсь на вашу помощь, язык не очень известен, особенно с учетом того, что большинство сидит на компонентном паскале, поэтому даже спросить почти негде..

Автор:  Trurl [ Среда, 14 Ноябрь, 2007 18:11 ]
Заголовок сообщения:  Re: Массивы, definition модуль

заполнить массив по типу си нельзя.
констант начинающихся со знака $ не бывает. Наверное, надо 16-ные? Тогда так: 0F5A0H.

И еще, интересует, как объявить процедуру из дллки? В хелпе написано- PROCEDURE [_APICALL], вот только примера нет и понять я не смог..
процедуры из дллки объявляют в отдельном модуле
Код:
 
DEFINITION MyDll;
PROCEDURE [_APICALL] MyProc (a,b:INTEGER);
END MyDll.

Автор:  DevIce [ Среда, 14 Ноябрь, 2007 18:18 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Спс, с процедурами вроде понятно.. Просто нужно заголовки для одной библиотеки создать, хотел перевести с делфи, а там константы все начинаются со знака $.. Насчет массива- кроме объявления по индексу(array[1]=5) совсем никак? Подойдет любой, хоть самый извращенный метод, заполнить массив за один заход очень нужно.

Автор:  Евгений Темиргалеев [ Среда, 14 Ноябрь, 2007 18:23 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Написать процедуру, которая читает из файла. По-другому, кажется, не получится.

Автор:  DevIce [ Среда, 14 Ноябрь, 2007 18:36 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Отлично, чтение из файла вполне подойдет, попробую осуществить. Благодарю за помощь.

Автор:  DevIce [ Среда, 14 Ноябрь, 2007 22:36 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Блин, вот с созданием заголовочных файлов реальная проблема.. Я так и не въеду, как указать, в какой именно библиотеке находится процедура. Вот на примере OpenGL(только не говорите, что ерундой занимаюсь, черный ящик меня не устраивает), как, например, указать процедуру glBegin? Глянул исходники странника, там(на модуле-2) просто указано from OpenGL32;
procedure glBegin(mode:GLenum);
и всего то.. На обероне по идее должно быть просто PROCEDURE [_APICALL] glBegin(mode: GLenum);
(тип GLenum я пока в расчет не беру), а как источник- библиотеку указать?

Автор:  Trurl [ Четверг, 15 Ноябрь, 2007 09:03 ]
Заголовок сообщения:  Re: Массивы, definition модуль

В программе ничего указывать не надо.
Библиотеку надо добавить в проект, чтобы её нашел линкер.

Автор:  Info21 [ Четверг, 15 Ноябрь, 2007 10:57 ]
Заголовок сообщения:  Re: Массивы, definition модуль

DevIce писал(а):
... Вот на примере OpenGL(только не говорите, что ерундой занимаюсь, черный ящик меня не устраивает)...


Будьте добры, поясните, тут связь OpenGL и ящика -- случайная или нет?
Что Вас не устраивает в ЧЯ? Можно и в личку.

Автор:  DevIce [ Четверг, 15 Ноябрь, 2007 11:26 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Trurl, спс, понятно.. Что касается ББ- не принимает мой мозг такую идеологию для создания приложений с ОГЛ. Для написания утилит, каких-нибудь редакторов и пр.- отличная вещь, я не спорю. Но зачем заморачиваться со всем этим, когда я все равно творю в фуллскрине, и весь костяк в ББ только в нагрузку. Все это ИМХО, разумеется.

Автор:  PGR [ Четверг, 15 Ноябрь, 2007 12:15 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Ну и при использовании OpenGL из подсистемы Ogl об аппаратном ускорении можно забыть -- не поддерживается :(

Автор:  DevIce [ Четверг, 15 Ноябрь, 2007 18:02 ]
Заголовок сообщения:  Re: Массивы, definition модуль

PGR, тем более. Тут кое-какие проблемы с типами, в частности, непонятно, чем заменить cardinal и address из модулы. По длине соответствующих беззнаковых не нашел, есть integer, но оно ведь не беззнаковое.. Да, и как указать компилятору, что константа шестнадцатеричная? Ни 0х, ни $ не катят. Как всегда, надеюсь на вашу помощь =)

Автор:  Евгений Темиргалеев [ Четверг, 15 Ноябрь, 2007 18:40 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Trurl писал(а):
констант начинающихся со знака $ не бывает. Наверное, надо 16-ные? Тогда так: 0F5A0H.

Автор:  DevIce [ Четверг, 15 Ноябрь, 2007 19:53 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Блин, я просто не заметил сначала букву Н в конце, теперь все понятно. А с типами в обероне вообще ппц,чет дядя Вирт многовато повырезал =)

Автор:  Илья Ермаков [ Четверг, 15 Ноябрь, 2007 20:08 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Он уже не дядя, а дедушка :-)

Про вырезание типов - вырезано всё то, что мешало динамической модульности.
Например, перечисления и массивовые константы - непонятно, как их расширять и потом контролировать совместимость.

Автор:  batyrmastyr [ Четверг, 15 Ноябрь, 2007 20:41 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Илья Ермаков писал(а):
Он уже не дядя, а дедушка :-)

Про вырезание типов - вырезано всё то, что мешало динамической модульности.
Например, перечисления и массивовые константы - непонятно, как их расширять и потом контролировать совместимость.

Думаю DevIce больше по беззнаковым целым тоскует, чем по перечислениям и масивным константам :)

Автор:  DevIce [ Четверг, 15 Ноябрь, 2007 22:21 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Да, беззнаковый 4байтный тип очень не помешал бы.. Я сильно извиняюсь за надоедливость, но с заголовочным файлом туго.. Вроде как перенес все что нужно(http://bestlib.net.ru/OpenGL.zip ), модуль вроде бы нормально компилится, но стоит попытаться его подключить(пробовал к стандартному примеру из поставки POW- где создается окно через винапи), как приложение не запускается, хотя компилируется нормально. К проекту исходник заголовочного файла добавил. Может у кого-то получиться применить его? Возможно, у меня компилятор взбесился..

Автор:  Info21 [ Пятница, 16 Ноябрь, 2007 04:55 ]
Заголовок сообщения:  Re: Массивы, definition модуль

PGR писал(а):
Ну и при использовании OpenGL из подсистемы Ogl об аппаратном ускорении можно забыть -- не поддерживается :(


Чето снова не понял -- выше вроде о каком-то длл речь идет -- если не трудно, чуть подробней? (Я не влазил в Ogl.)

Автор:  Trurl [ Пятница, 16 Ноябрь, 2007 11:40 ]
Заголовок сообщения:  Re: Массивы, definition модуль

DevIce писал(а):
модуль вроде бы нормально компилится, но стоит попытаться его подключить(пробовал к стандартному примеру из поставки POW- где создается окно через винапи), как приложение не запускается, хотя компилируется нормально. К проекту исходник заголовочного файла добавил.


Модуль не может нормально компилится без модуля STRINGS (это что?).

Автор:  PGR [ Пятница, 16 Ноябрь, 2007 12:26 ]
Заголовок сообщения:  Re: Массивы, definition модуль

info21 писал(а):
PGR писал(а):
Ну и при использовании OpenGL из подсистемы Ogl об аппаратном ускорении можно забыть -- не поддерживается :(

Чето снова не понял -- выше вроде о каком-то длл речь идет -- если не трудно, чуть подробней? (Я не влазил в Ogl.)

Был вопрос: что в BlackBox не устраивает при работе с OpenGL. Это дело уже обсуждалось (viewtopic.php?f=5&t=412).

P.S. А поиск по форуму никуда не годится :( Пришлось вручную тему искать.

Автор:  DevIce [ Пятница, 16 Ноябрь, 2007 12:37 ]
Заголовок сообщения:  Re: Массивы, definition модуль

Модуль STRINGS входит в библиотеку OPAL, из поставки POW. Просто нужен был тип pstr, я его и заменил на STRINGS.String

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/