A2 & Oberon GOOGLE trans to English      Помощь      Поиск      Пользователи  Файловый архив


 Страниц (2): [1] 2 »   

> Описание: не ГУИ приложения, а именно для Windows ?
adva
Отправлено: 19 Августа, 2009 - 05:18:45
Post Id


Newbie


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2009  
Репутация: 0




Возможно ли создать используя A2? И если да, то где бы про это почитать?

Интересует возможность:
1) создания приложения со стандартным windows интерфейсом
2) dll

(Отредактировано автором: 19 Августа, 2009 - 05:24:53)

 
 Top
BohdanT Администратор
Отправлено: 19 Августа, 2009 - 09:10:31
Post Id



Super Member


Покинул форум
Сообщений всего: 606
Дата рег-ции: Июль 2008  
Откуда: Киев, Украина
Репутация: 2




adva пишет:
Возможно ли создать используя A2?

да
adva пишет:
И если да, то где бы про это почитать?

с почитать проблема Огорчение

а небольшой пример вот

adva пишет:
1) создания приложения со стандартным windows интерфейсом

библиотек нет, т.е. на WinAPI.
Я бы предложил портануть библиотеку ACL(API Controls Library)Александра Боковикова,
работы максимум на неделю одному человеку.

adva пишет:
2) dll

можно, но я не делал.
еще вроде можно создавать .obj (COFF), опять же я не пробовал.

для создания виндовс-приложения необходимо создать link-файл где указать что и как линковать.
 
 Top
neuf
Отправлено: 19 Августа, 2009 - 11:25:00
Post Id


Junior Member


Покинул форум
Сообщений всего: 63
Дата рег-ции: Авг. 2008  
Откуда: Калуш, Ивано-Франковская обл., Украина
Репутация: 0




adva пишет:
где бы про это почитать?
Вот документ (см. приклепленный файл). Правда, он относится к ETH Oberon, но, думаю, можно из него почерпнуть информацию для А2. Кроме того, в A2 есть файл PELink.Tool.
Вот с GUI-приложениями - проблема: невозможно слинковать даже файл, в который включен только WMWindowManager (и, естественно, все файлы, которые он импортирует) - вылетает по трапу.
Скачать файл: ETHOberonForWindows.Text
Скачан раз: 527

(Отредактировано автором: 19 Августа, 2009 - 11:26:46)

 
 Top
BohdanT Администратор
Отправлено: 19 Августа, 2009 - 11:34:36
Post Id



Super Member


Покинул форум
Сообщений всего: 606
Дата рег-ции: Июль 2008  
Откуда: Киев, Украина
Репутация: 2




neuf пишет:
Вот с GUI-приложениями - проблема: невозможно слинковать даже файл, в который включен только WMWindowManager (и, естественно, все файлы, которые он импортирует) - вылетает по трапу.

Я так понял интересует не A2 GUI Подмигивание , WMWindowManager тянет очень много модулей...
 
 Top
Nils
Отправлено: 20 Августа, 2009 - 05:29:05
Post Id


Newbie


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июнь 2009  
Репутация: 0




neuf пишет:
Вот с GUI-приложениями - проблема: невозможно слинковать даже файл, в который включен только WMWindowManager (и, естественно, все файлы, которые он импортирует) - вылетает по трапу.
Всё линкуется. HeapSize увеличьте.
BohdanT пишет:
Я бы предложил портануть библиотеку ACL(API Controls Library)Александра Боковикова,
Это где такая?
 
 Top
neuf
Отправлено: 20 Августа, 2009 - 09:21:23
Post Id


Junior Member


Покинул форум
Сообщений всего: 63
Дата рег-ции: Авг. 2008  
Откуда: Калуш, Ивано-Франковская обл., Украина
Репутация: 0




Nils пишет:
Всё линкуется. HeapSize увеличьте.
Значит, я что-то не так делаю. Вот Link-файл с увеличенным в 100 раз против стандартного HEAPSIZE и трап, который выдается при выполнении команды PELinker.Link prWM.Link~ .
Скачать файл: WMLink.zip
Скачан раз: 547
 
 Top
BohdanT Администратор
Отправлено: 20 Августа, 2009 - 12:26:25
Post Id



Super Member


Покинул форум
Сообщений всего: 606
Дата рег-ции: Июль 2008  
Откуда: Киев, Украина
Репутация: 2




Nils пишет:
Это где такая?

вот, она гораздо проще и ближе к WinApi чем KOL. Как по мне - то, что доктор прописал Хорошо
Скачать файл: acl2.zip
Скачан раз: 526
 
 Top
BohdanT Администратор
Отправлено: 20 Августа, 2009 - 17:33:55
Post Id



Super Member


Покинул форум
Сообщений всего: 606
Дата рег-ции: Июль 2008  
Откуда: Киев, Украина
Репутация: 2




neuf пишет:
Значит, я что-то не так делаю.

Не нужно прописывать все линкуемые модули!
Пропиши:
MODULES
Kernel32, Trace, Machine, Heaps, Modules, Objects, Kernel,МyMainModule

Тот модуль, который указан последним - и есть основной, в прикрепленом линк-файле я такого не заметил.

HEAPSIZE - ни коим образом не может вызывать данный трап, т.к. это просто константа которая прописывается в PE-header (в дальнейшем ее можно менять хекседитором на свое усмотрение)
 
 Top
Nils
Отправлено: 20 Августа, 2009 - 18:03:29
Post Id


Newbie


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июнь 2009  
Репутация: 0




neuf пишет:
Nils пишет:
Всё линкуется. HeapSize увеличьте.
Значит, я что-то не так делаю. Вот Link-файл с увеличенным в 100 раз против стандартного HEAPSIZE и трап, который выдается при выполнении команды PELinker.Link prWM.Link~ .
neuf, HeapSize это константа в Linker0.Mod. Для Вашего файла prWM достаточно мегабайта. Иначе будет TRAP в процедуре NewBlock.
Относительно указанного Вами трапа - он возникает здесь
ASSERT(numProcs + LEN(procTable) <= LEN(procOffsets)); 	(* no reallocation of procOffsets in linker *)
Увеличьте размер procOffsets и слинкуется. У меня слинковался.

(Отредактировано автором: 20 Августа, 2009 - 18:10:53)

 
 Top
neuf
Отправлено: 20 Августа, 2009 - 18:06:50
Post Id


Junior Member


Покинул форум
Сообщений всего: 63
Дата рег-ции: Авг. 2008  
Откуда: Калуш, Ивано-Франковская обл., Украина
Репутация: 0




BohdanT пишет:

Не нужно прописывать все линкуемые модули!
Да, консольные приложения нормально линкуются. А это была попытка слинковать A2 c GUI (в первой строчке SUBSYSTEM GUI), для которого нужен, как минимум, WMWindowManager. Если и такой минимум вызывает трап, то что говорить о чем-то большем? Причем, в ETH Oberon очень даже прекрасно линковались и работали линк-файлы с GUI с количеством модулей раз в пять бОльшим, чем в этом примере. Получался один файл екзе в 3-4-5 МБ, которому для работы уже ничего не нужно было.
Здесь, насколько я успел посмотреть, проблема в PELinkere, там почему-то стоят ограничения по размерам внутренних структур данных.
(Добавление)
Nils пишет:
Увеличьте размер procOffsets и слинкуется. У меня слинковался.
Одновременно писали свои сообщения, поэтому не успел увидеть Закатив глазки . Да, я пробовал изменять procOffsets, линкуется, но когда начинаешь добавлять еще модули, хотя бы чтоб был WMComponents, появляется трап в другом месте, уже по размеру другой внутренней структуры итд. Так что я пока отложил это занятие.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« Общеe »


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



Locations of visitors to this page
[Valid RSS]

RSS

Valid CSS!


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0284]     [ Gzipped ]