1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Кодерский уголок

Тема в разделе "Мастерская", создана пользователем Dimouse, 10 сен 2006.

  1. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.044
    В соответствии с назначением раздела, в этой теме предполагается обсуждать конкретные вопросы, которые у вас возникают при создании своих программ (в частности - игр), помогать другим, размещать полезные ссылки на статьи и материалы, которые могут пригодиться другим.

    Что здесь не допускается:
    - беспорядочный флуд на всевозможные темы, в том числе общие обсуждения языков программирования без конкретики (карается по статье "флуд и оффтопик" *),
    - разжигания на темы "что лучше, Си или Си++ и чем они отличаются?", "какой язык программирования лучше X или Y?" и т.п. (карается по статье "флейм и участие в холиварах" *),
    - мерение пиписьками в стиле "я лучше программирую" или "ты не умеешь программировать" (карается по статье "оскорбление участников и их взглядов" *).

    Всё это допускается в специально созданной теме "Беседка для программистов или «Бутерброд с кодом».

    * по усмотрению модератора также возможно применение блокировки в данной теме.

    Оригинальное сообщение
     
    Последнее редактирование модератором: 24 ноя 2014
    CY8R4Y нравится это.
  2.  
  3. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.202
    ASY/VBE же - под Borland Turbo Pascal - для новичка самое оно.
    К сожалению, официальный сайт давно протух и оттуда ничего не качается.
    Разве что руководство почитать можно.
    Прикладываю всё, что удалось найти к этому сообщению.
    examples.zip битый, увы.
    Сам ASY/VBE находится в asyvbe.zip, где доступна подробная справка с примерами на русском языке: DOC/ASY-VBE.DOC (все файлы в DOS кодировке 866).
    Оно же умеет 8bpp pежим (256 цветов), 15/16bpp (32K/64K цветов), 32bpp (16M цветов), XMS, мышку, загрузку рисунков из bmp-файлов и многое-многое другое.
     

    Вложения:

    • asyvbe12.zip
      Размер файла:
      431,4 КБ
      Просмотров:
      37
  4. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    компиляторы для языка Си:

    DJGPP

    OpenWatcom


    - странно что никто не посоветовал - они очень известные,

    информации по ним море, всё легко гуглится :good:



    по другим языкам:

    http://www.freedos.org/software/ (заглянуть в раздел DEVEL)
    http://www.freedos.org/links/ (Programming)


     
    Andreus778 нравится это.
  5. Andreus778

    Andreus778

    Регистрация:
    30 июн 2014
    Сообщения:
    20
    Спасибо большое.

    ---------- Сообщение добавлено в 19:12 ---------- Предыдущее сообщение размещено в 17:16 ----------

    e9f5f5f6a2ab9d443d6f50d7809f046c.png Решаемо?
     
  6. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    а какой код в HELLO.C ?
     
  7. Andreus778

    Andreus778

    Регистрация:
    30 июн 2014
    Сообщения:
    20
    Код:
    #include <stdio.h>
    main()
    {
    [INDENT]printf("Hello, world!\n");[/INDENT]
    [INDENT]getch();[/INDENT]
    }
    
     
  8. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    создаём .bat со следующим содержимым:

    SET WATCOM=C:\WATCOM
    SET PATH=%WATCOM%\BINW;%PATH%
    SET EDPATH=%WATCOM%\EDDAT
    SET INCLUDE=%WATCOM%\H
    REM SET LIB=
    REM SET WWINHELP=D:\BINW

    запускаем его
    достаточно один раз

    после чего компиляция пойдёт нормально
     
    Andreus778 нравится это.
  9. Andreus778

    Andreus778

    Регистрация:
    30 июн 2014
    Сообщения:
    20
    не помогает. Ошибки в STDIO.H, но файл я не трогал и не заменял ничем.
     
  10. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    а какой компилятор?
    батник выше предназначен для OpenWatcom (только что в DOSBOX скомпилировал hello.c и grdemo.c для проверки - работает)

    конечно, в stdio.h ошибки быть не должно - ну по крайней мере hello world должен компилироваться, же

    ---------- Сообщение добавлено в 22:56 ---------- Предыдущее сообщение размещено в 21:28 ----------

    Andreus778, небольшая поправочка:
    вышеозначенный батник необязателен - всё уже и так прописывается в autoexec.bat, при установке OpenWatcom

    и ещё что-то в config.sys

    просто проверял в DOSBOX, а там почему-то autoexec сходу не запускается (лень уточнять почему так)
    если делать в чистом досе или полноценном эмуляторе - autoexec должен запускаться


    для компилятора DJGPP ручками надо пошаманить с этими файлами:

    Offtop
    You need to update your C:\CONFIG.SYS to include the following lines (edit the first to suit your installation, and if these lines already exist, it's OK if they have larger numbers than these examples):

    shell=c:\dos\command.com c:\dos /e:2048 /p
    files=40
    fcbs=40,0

    You need to update your C:\AUTOEXEC.BAT to include the following lines:

    set PATH=C:\DJGPP\BIN;%PATH%
    set DJGPP=C:\DJGPP\DJGPP.ENV

    Note that the PATH statement should follow any other PATH statements, or you may edit an existing PATH statement.



    Andreus778, может и не в этом проблема, но если компилятор не видит путей, то появляются именно такие ошибки


    Andreus778, и ещё отмечу, что вышеуказанное я проверял в DOSBOX и все компиляторы устанавливал и запускал только в нём, так как щас на компе Linux и нет никакого желания пытаться заниматься кросс-компиляцией.

    батники тоже в DOSBOX запускал, если что

    незнаю должны ли компиляторы работать в Windows - наверняка там надо прописать пути где-то в "Мой компьютер" - "Свойства" - "Переменные среды" (ну или что-то вроде того, уж точно не припомню)
     
  11. Andreus778

    Andreus778

    Регистрация:
    30 июн 2014
    Сообщения:
    20
    Я разобрался. Теперь "Hello, world!" скомпилировался. У меня OpenWatcom. А что именно там надо для DJGPP делать? Не надо в подробностях. Спасибо всем, кто помогал мне.
     
    Последнее редактирование: 2 июл 2014
  12. Guyver

    Guyver

    Регистрация:
    2 окт 2005
    Сообщения:
    4.959
    Да ничего особенного, так же переменные окружения настроить (те которые SET=...) пути для компилятора и библиотек.
    ЗЫ: Я Ватком вообще не щупал, не просто, не опен, я под DJGPP все кодил, в далеком начале нулевых. С Аллегрой, да. Норм работало. Самая долгая операция как раз была собрать Аллегру из исходников.
     
  13. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    можно глупый вопрос задать?

    вот скачал я DJGPP и Allegro

    везде пишут:
    - зайдите в папку allegro
    - make

    но, блин, у меня нет такой папки,
    в архиве c allegro были только папки - include, info, lib, manifest

    и вот, что странно,

    я их просто скопировал в папку с DJGPP,

    и попробовал собрать простой исходник, с использованием Allegro,

    вот так:
    gcc test.c - o test.exe -lalleg


    как ни странно - ни варнингов ни ошибок,

    а полученный test.exe работает и в DOS, и в Windows O_o


    Что именно я делаю не так?


    беспокоит то, что .exe получается аж 871 Кб весом

    как-то многовато

    и компилируется почти минуту - долго!

    наверно, там какая-то инфа для отладки - типа для дебага, а мне надо релиз.
    с флагом -O -s получается меньше - 515 Кб - один фиг это много
    (конечно, наверно стоило почитать справку gcc, но там так много инфы, что в глазах рябит)
     
  14. Guyver

    Guyver

    Регистрация:
    2 окт 2005
    Сообщения:
    4.959
    Очевидно, что вместо исходников ты скачал уже собранную Аллегру, вот она и работает сразу.

    Насчет флагов - я юзал -m486 -O3, но это было давно и я уже не помню что и зачем.
     
  15. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Для DOS это нормально. Библиотеки ведь линкуются статически.
     
  16. Guyver

    Guyver

    Регистрация:
    2 окт 2005
    Сообщения:
    4.959
    Щас посмотрел размер - у меня 300кб выходило +\-. И это аллегра + еще какой-нибуть mikmod для звука.
     
  17. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    MisterGrim, это да.

    Guyver, может быть это сама Allegro так собрана с инфой для отладки?
    (предусмотрительно позаботились о разработчиках)


    вот сейчас сорсы скачал - попробую пересобрать её, а потом скомпилировать .exe


    где-то читал, что должно получаться примерно 200 Кб


     
  18. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.174
    Вижу в книжках Ф.Луны и А.Ламота и в упор не понимаю два момента:

    1. Что такое разыменование (dereference) указателя?

    Судя по переводу MSDN это "разжалование" указателя в обычную переменную. Зачем это вообще?

    2. Что делает вот эта штука "->"?

    Предположительно, это унарная операция, применяемая к указателю на элемент (поле) структуры. Используется в большинстве примеров, связанных с вызовом процедур DirectX.
     
  19. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Содержимое самого указателя - адрес другой переменной. Разыменование - получение доступа к содержимому переменной, на которую он указывает.

    p - указатель на s
    *p - фактически, сама s

    Даёт доступ к содержимому поля структуры, на которую указывает переменная-указатель.
     
    Kristobal Hozevich Hunta нравится это.
  20. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.174
    Спасибо, проясняется.

    int s 100;
    int q 0;
    int *p;
    ...
    p = &s; // инициируем указатель, взятие адреса s
    q = *p; // теперь q = 100 ? И здесь я мог бы написать q = s ?

    Правильно понял?

    Кстати, вижу два способа декларации:

    int* p
    int *p

    В чем разница?
     
  21. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Всё хорошо, только оператор присваивания нужно добавить :)

    :yes:

    :) Я ещё третий знаю - int * p

    Ни в чём :)
     
    Kristobal Hozevich Hunta нравится это.
  22. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.174
    mov AP$lasH, [Большая_благодарность.KHHunta]

    :)
     
    A.P.$lasH нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление