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

Эмуляция KolibriOS API
http://board.kolibrios.org/viewtopic.php?f=37&t=3679
Страница 5 из 5

Автор:  0CodErr [ Сб апр 28, 2018 2:28 pm ]
Заголовок сообщения:  Re: Эмуляция KolibriOS API

Leency писал(а):
А как прописать путь к /rd/1/ ?
Я вот тут писал viewtopic.php?f=37&t=3679&start=30#p70210 и там под спойлером есть скриншот.
Или можно попробовать этот командный файл(SetPaths.cmd)
Вложение:
SetPaths.7z [301 байт]
6 скачиваний
Kopa писал(а):
В ReactOS при запуске Колибри программ окно приложения мерцает до момента пока мышью не активизируешь фокус на нём. (также и при разворачивании приложения из трея)
Kopa писал(а):
Приложение Table, при изменении его размера не перерисовывается.
Это, скорее всего, баги ReactOS, если в WinXP работает.
Kopa писал(а):
P.S. Мерцание приложения в XP наблюдается, например, Web-demo (из-за скина перекрывающего изображение?)
Да, есть такое.

Автор:  Kopa [ Ср май 02, 2018 8:41 pm ]
Заголовок сообщения:  Re: Эмуляция KolibriOS API

Попробовал собрать последнюю ревизию у себя программы
и получил такое сообщение
Код:
/usr/bin/ld: /tmp/ccotqVjU.o: неопределённая ссылка на символ «dlopen@@GLIBC_2.1»
//lib/i386-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Автор:  0CodErr [ Вс май 27, 2018 10:50 am ]
Заголовок сообщения:  Re: Эмуляция KolibriOS API

0CodErr писал(а):
tsdima писал(а):
0CodErr писал(а):
Интересно, кто-нибудь пробовал из-под Wine запускать?
Я пробовал, всё тот же "Read File error".
Значит в linux нельзя выделить память в нуле.
А ведь раньше была возможность.
Нашёл в модуле System такой код с комментариями:
Код:
{$IFDEF LINUX}

................................................................................

{ The Win32 program loader sets up the first 64k of process address space
  with no read or write access, to help detect use of invalid pointers
  (whose integer value is 0..64k).  Linux doesn't do this.

  Parts of the Delphi RTL and IDE design environment
  rely on the notion that pointer values in the [0..64k] range are
  invalid pointers.  To accomodate this in Linux, we reserve the range
  at startup.  If the range is already allocated, we keep going anyway. }

var
  ZeroPageReserved: Boolean = False;

procedure ReserveZeroPage;
const
  PROT_NONE = 0;
  MAP_PRIVATE   = $02;
  MAP_FIXED     = $10;
  MAP_ANONYMOUS = $20;
var
  P: Pointer;
begin
  if IsLibrary then Exit;  // page reserve is app's job, not .so's

  if not ZeroPageReserved then
  begin
    P := mmap(nil, High(Word), PROT_NONE,
      MAP_ANONYMOUS or MAP_PRIVATE or MAP_FIXED, 0, 0);
    ZeroPageReserved := P = nil;
    if (Integer(P) <> -1) and (P <> nil) then  // we didn't get it
      munmap(P, High(Word));
  end;
end;

procedure ReleaseZeroPage;
begin
  if ZeroPageReserved then
  begin
    munmap(nil, High(Word) - 4096);
    ZeroPageReserved := False;
  end;
end;
{$ENDIF}
Так как у linux исходный код открыт, то, думаю, при желании можно для себя любимого снова включить эту возможность.
Kopa писал(а):
Попробовал собрать последнюю ревизию у себя программы
Ошибся темой , да? :)

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