Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  17:11[Войти] | [Зарегистрироваться]
Обсуждение темы:
Мысли об Обероне

На базарной площади довольно часто можно слышать высказывания об Обероне. Мне кажется, что на базарной площади пора появиться ветке об этой системе и языке, что-то вроде "Мысли об Обероне". Что это такое, перспективы этой системы, что полезного можно извлечь из него для программирования на Дельфи (например) и др.

Ivan

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 4531 сообщение


Ссылки по теме "Оберон" и "Компонентный паскаль"



Отслеживать это обсуждение


Смотрите также обсуждения:
Free Pascal, Oberon, BlackBox
  • Разработка препроцессора gpre для delphi\freepascal.
  • Component Pascal и среда разработки BlackBox
  • FreePascal: реальная альтернатива или OpenSource — блажь?

  • <<<... | 1821—1812 | 1811—1802 | 1801—1792 | ...>>>
    Всего сообщений в теме: 4531; страниц: 454; текущая страница: 273


    № 1811   10-01-2005 14:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    Вопрос на тему реализации многопоточности. Есть следующий модуль:
    MODULE Test4;

    IMPORT WinApi, SYSTEM, Log:=StdLog;

    CONST
    MAX_TIMES = 1000;

    VAR
    HANDLE: ARRAY 2 OF WinApi.HANDLE;
    IpCriticalSection: WinApi.RTL_CRITICAL_SECTION;
    IpThreadId: ARRAY 2 OF INTEGER;
    g_nIndex, a, a1, a2: INTEGER;
    g_dwTimes: ARRAY MAX_TIMES OF INTEGER;

    PROCEDURE FirstThread(IpParameter: WinApi.PtrVoid): INTEGER;
    VAR fDone: BOOLEAN;
    BEGIN
    Log.String('FirstThread'); Log.Ln;
    fDone:=FALSE;
    WHILE ~fDone DO
    WinApi.EnterCriticalSection(IpCriticalSection);
    IF g_nIndex >= MAX_TIMES THEN
    fDone:=TRUE;
    ELSE g_dwTimes[g_nIndex]:=WinApi.GetTickCount();
    Log.Int(g_dwTimes[g_nIndex]); Log.Ln;
    INC(g_nIndex);
    END;
    WinApi.LeaveCriticalSection(IpCriticalSection);
    END;
    RETURN 0;
    END FirstThread;

    PROCEDURE SecondThread(IpParameter: WinApi.PtrVoid): INTEGER;
    VAR fDone: BOOLEAN;
    BEGIN
    Log.String('SecondThread'); Log.Ln;
    fDone:=FALSE;
    WHILE ~fDone DO
    WinApi.EnterCriticalSection(IpCriticalSection);
    IF g_nIndex >= MAX_TIMES THEN
    fDone:=TRUE;
    ELSE INC(g_nIndex);
    g_dwTimes[g_nIndex-1]:=WinApi.GetTickCount();
    Log.Int(g_dwTimes[g_nIndex-1]); Log.Ln;
    END;
    WinApi.LeaveCriticalSection(IpCriticalSection);
    END;
    RETURN 0;
    END SecondThread;

    PROCEDURE Main*;
    BEGIN
    WinApi.InitializeCriticalSection(IpCriticalSection);
    Log.String('Main'); Log.Ln;
    HANDLE[0]:=WinApi.CreateThread(NIL, 0, FirstThread, 0, {}, IpThreadId[0]);
    Log.String('Tread1'); Log.Ln;
    HANDLE[1]:=WinApi.CreateThread(NIL, 0, SecondThread, 0, {}, IpThreadId[1]);
    a:=WinApi.WaitForMultipleObjects(2, HANDLE[0], 1, WinApi.INFINITE);
    a:=WinApi.WaitForMultipleObjects(2, HANDLE[1], 1, WinApi.INFINITE);
    a1:=WinApi.CloseHandle(HANDLE[0]);
    a2:=WinApi.CloseHandle(HANDLE[1]);
    WinApi.DeleteCriticalSection(IpCriticalSection);
    END Main;

    END Test4.
    В результате его запуска ЧЯ аварийно завершает работу. В чем причина?
    Здесь не все ясно с вызовом процедуры
    a:=WinApi.WaitForMultipleObjects(2, HANDLE[0], 1, WinApi.INFINITE);
    a:=WinApi.WaitForMultipleObjects(2, HANDLE[1], 1, WinApi.INFINITE);
    потому как в примере на С второй параметр - указатель на массив HANDLE, а не отлельный элемент. Сделать указатель что-то не получается. Может встречались с такими проблемами? Прошу оказать помощь.
    P.S. Программа должна выводить массив чисел в возрасатющей последовательности. Что тоже делает с ошибками.


    № 1810   09-01-2005 14:36 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1809« (Kubanych)
    ___________________________
    Можно и ещё проще unicode:= win$. Но, как и в случае win2unicode, преобразования не будет.
    >>> Еще открытым остался вопрос о датах (№ 151).
    F1 -> Framework ->Dates


    № 1809   08-01-2005 18:45 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на сообщение 153.

    Спасибо большое.
    А у меня сработал такой метод :)

    PROCEDURE unicode2win
    (
    unicode:ARRAY OF CHAR;
    VAR win:ARRAY OF SHORTCHAR
    );
    VAR i: INTEGER;
    BEGIN
    i:=-1;
    REPEAT
    INC(i);
    win[i]:=SHORT(unicode[i]);
    UNTIL ORD(unicode[i])=0;
    END unicode2win;

    PROCEDURE win2unicode
    (
    win:ARRAY OF SHORTCHAR;
    VAR unicode:ARRAY OF CHAR
    );
    VAR i: INTEGER;
    BEGIN
    i:=-1;
    REPEAT
    INC(i);
    unicode[i]:=win[i];
    UNTIL ORD(win[i])=0;
    END win2unicode;

    Еще открытым остался вопрос о датах (№ 151).

    С уважением,


    № 1808   06-01-2005 15:16 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1807« (Владимир Лось)
    ___________________________
    >>>Спасибо. Пальцем не покажете, где брать?
    XDS? здесь: http://www.excelsior-usa.com/xdsx86.html


    № 1807   06-01-2005 10:59 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1803« (Trurl)
    ___________________________
    Если есть сопутствующие .h файлы, можно использовать утилитку из XDS.
    Спасибо. Пальцем не покажете, где брать?

    Но ведь информация о типах в  .dll и .lib файлах не храниться.
    А я о типах и словом не обмолвился... Я написал "для получения содержимого данных типов файлов"... :о)


    № 1806   06-01-2005 06:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1805« (гость)
    ___________________________
    В ЧЯ инициализируются все глобальные переменные, а из локальных - только указатели. Так что всё правильно.


    № 1805   06-01-2005 02:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1804« (гость)
    ___________________________

    Я слышал, что переменные в ББ должны инициализироваться нулями, но такой тест не проходит:

    PROCEDURE InitTest*;
    VAR z: INTEGER;
    BEGIN
    ASSERT(z = 0, 20)
    END InitTest;


    TRAP 20  (precondition violated)


    № 1804   06-01-2005 02:07 Ответить на это сообщение Ответить на это сообщение с цитированием
    Я слышал, что переменные в ББ должны инициализироваться нулями, но такой тест не проходит:

    PROCEDURE InitTest*;
    VAR z: INTEGER;
    BEGIN
    ASSERT(z = 0, 20)
    END InitTest;



    № 1803   05-01-2005 17:59 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1802« (Владимир Лось)
    ___________________________
    Но ведь информация о типах в  .dll и .lib файлах не храниться.
    Если есть сопутствующие .h файлы, можно использовать утилитку из XDS.


    № 1802   05-01-2005 14:53 Ответить на это сообщение Ответить на это сообщение с цитированием
    Господа!

    Нужно "дешёвосердитое" решение!
    Есть задача получения доступа к процедурам и структурам данных (ч/з процедуры, ессна!) в dll и lib файлах. Нет ли готовой тулзовины для получения содержимого данных типов файлов и преобразования его в КП "заголовочные" модули?

    С уважением


    <<<... | 1821—1812 | 1811—1802 | 1801—1792 | ...>>>
    Всего сообщений в теме: 4531; страниц: 454; текущая страница: 273




    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования