Board.KolibriOS.org
http://board.kolibrios.org/

KolibriOS на производстве
http://board.kolibrios.org/viewtopic.php?f=25&t=897
Страница 14 из 14

Автор:  0CodErr [ Чт сен 20, 2018 2:32 pm ]
Заголовок сообщения:  Re: KolibriOS на производстве

zero00m, интересная тема.
her-znayet-kto писал(а):
QUOTE (her-znayet-kto @ Sep 18 2018, 07:59 PM)
как запустить едитбокс - с цифирками (числовой) -
возможно ли его запустить, не используя dll ?

... а использование dll, в свою очередь, одним только
едит-боксом может вывести всю асутп
из разряда открытокодовых (открытоисходниковых) ...
(в лучшем случае - заставит изучать - дополнительно - какой-то
еще язык программирования, что друзьям паяльника,
макетки, флюса и олова мягко говоря крайне нежелательно) ...
Как вариант, можно полностью вкомпилировать этот EditBox в своё приложение.
Код библиотеки box_lib http://websvn.kolibrios.org/listing.php ... 6adea61bbb
Вот тема про библиотеку на нашем форуме viewtopic.php?f=24&t=1220

Я попробовал переделать один из своих примеров
Для сборки нужно:
    FASM
    C--
    LD
    OBJCOPY
    KolibriOS.Lib
    — можно скачать из темы Delphi7 examples

Вот что я сделал дальше:
Добавил в editbox.asm нужные константы и флаги.
Взял необходимые файлы:Собирается вот так
Код:
Set NAME=BuiltinEditBox
FASM editbox.asm
C-- %NAME%.c-- /w32 /sobj /COFF
LD -T LScript.x %NAME%.obj editbox.obj -o %NAME%.kex -L %KolibriOS% -l KolibriOS
OBJCOPY -O binary -j .all %NAME%.kex
Del %NAME%.obj
Pause
LScript.x — это линкер-скрипт для LD, вот его содержимое
Код:
PATH_SIZE   = 1024;
PARAMS_SIZE =  256;
STACK_SIZE  = 1024;

AppParams   = $END + PATH_SIZE;
AppPath     = $END;

SECTIONS
{
  .all : AT(0){
    LONG(0x554e454D);
    LONG(0x31305445);
    LONG(1);
    LONG("Main");
    LONG(END);
    LONG($END + PATH_SIZE + PARAMS_SIZE + STACK_SIZE);
    LONG($END + PATH_SIZE + PARAMS_SIZE + STACK_SIZE);
    LONG(AppParams);
    LONG(AppPath);
    *(.text)
    *(.rdata)
    *(.data)
    *(.codedat)
  }
END = .;
  .bss ALIGN(16) : {*(.bss)}
$END = .;
}
%KolibriOS% — это директория, содержащая KolibriOS.Lib.
В результате полученное приложение при запуске копирует параметры командной строки в EditBox
Вложение:
BuiltinEditBox.PNG
BuiltinEditBox.PNG [ 55.56 КБ | 1387 просмотров ]

Есть проблема: виснет при Ctrl+C\Ctrl+V\Ctrl+X.
Трудно сказать, из-за чего.
Можно попробовать собирать и вот так(link — линкер от Microsoft):
Код:
Set NAME=BuiltinEditBox
FASM editbox.asm
C-- %NAME%.c-- /w32 /sobj
link -edit %NAME%.obj
LD -T LScript.x %NAME%.obj editbox.obj -o %NAME%.kex -L %KolibriOS% -l KolibriOS
OBJCOPY -O binary -j .all %NAME%.kex
Del %NAME%.obj
Pause
Но в результате LD вылетает с
Код:
LD: warning: BuiltinEditBox.obj: local symbol `-☺' has no section
LD: warning: BuiltinEditBox.obj: local symbol `-☺' has no section
Вложение:
edtbx.7z [17.5 КБ]
25 скачиваний

Страница 14 из 14 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/