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.148
    В соответствии с назначением раздела, в этой теме предполагается обсуждать конкретные вопросы, которые у вас возникают при создании своих программ (в частности - игр), помогать другим, размещать полезные ссылки на статьи и материалы, которые могут пригодиться другим.

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

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

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

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

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    А что, Open Watcom уже никак?
     
  4. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    И как там с поддержкой Win95?
     
  5. SardaukarNN

    SardaukarNN

    Регистрация:
    5 сен 2013
    Сообщения:
    69
    Не понимаю что Вы вкладываете в слово "поддержка"?
    Ставьте GCC или даже Visual Studio 6.0 под любою Windows и программируйте на здоровье!
    А с другой стороны смысла не вижу сидеть на Win95 и программировать, другое дело ради поиграть в старые игрушки стоит поставить Win98!!!
     
    Bato-San и Ardash нравится это.
  6. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    @SardaukarNN, смысл то есть. Другое дело, что смысла делать это не под самой виндовс как бы и нет. Кроссразработка выглядит как то извращённо.
     
  7. SardaukarNN

    SardaukarNN

    Регистрация:
    5 сен 2013
    Сообщения:
    69
    Именно поэтому и привел в качестве примера два "компилятора".
    На сегодняшний день предпочитаю первый, а второй был проще и понятнее, чем его сегодняшние новые версии, в которых мозг "сломать" можно"! :blush:
     
    AlexeiK и Bato-San нравится это.
  8. al_exquemelin

    al_exquemelin

    Регистрация:
    12 окт 2017
    Сообщения:
    354
    На сайте есть такая старинная текстовая игрушка, Big Rig называется. У неё в архиве есть не только экзешник, но и файл TRUCKER.BAS (см. вложение), а в файле, лежащем рядышком (BASIC.TXT), написано, что запускать BAS можно через интерпретаторы GWBASIC или BASICA. А чем можно просмотреть код программы? Потому как в TRUCKER.BAS уже не сами инструкции, а что-то наполовину бинарное, будто бы результат компиляции.
     

    Вложения:

    • TRUCKER.BAS.zip
      Размер файла:
      8,7 КБ
      Просмотров:
      45
  9. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    @al_exquemelin, в GWBASIC и посмотреть. Сохранить без сжатия файл можно так (если правильно помню): SAVE "PROG.BAS",A
     
  10. al_exquemelin

    al_exquemelin

    Регистрация:
    12 окт 2017
    Сообщения:
    354
    @MisterGrim, как-то мимо меня прошёл этот вариант кодинга, да :)
    Пойду поищу GWBASIC или сразу образ досовской дискетки.
    --- добавлено 22 июн 2019, предыдущее сообщение размещено: 22 июн 2019 ---
    О, разжалось. Спасибо!
     
  11. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.207
    Тема про php, наверное.

    Есть форум, принимающий логин и пароль методом POST.

    На публичном PC отправка запроса методом POST запрещена. Метод PUT не запрещен.

    Технически я могу изменить метод с POST на PUT и отправить запрос повторно.

    Тут два вопроса:

    1. Возможно, замена метода должна поддерживаться и принимающей стороной (форумом)?
    И тогда замены метода на отправляющей стороне роли не играют?

    2. При изменении метода и повторной отправке я получаю ответ о том, что время сессии (timeout) истекло (то есть что-то всё же проходит после повторной отправки). Повлиять на этот параметр (время сессии) тем же способом (изменить и отправить) я не могу?

    Кстати, авторизация здесь (на O-G) проходит несмотря на запрет метода POST, что странно.
    Плюс я читал, что современные сайты поддерживают более продвинутые способы авторизации, чем метод POST.

    Подскажите, куда двигаться, пожалуйста.
     
    Последнее редактирование: 20 дек 2019
  12. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Добрый день!

    Помогите решить следующую проблему. В наличии имеется программка использующая midi-музыку и многоканальный wav-звук. Задача стоит в регулировании уровня громкости отдельно для музыки и отдельно для звука.
    Проблема заключается в том, что Windows выдает общий mixer-девайс для каждого процесса. И изменение громкости для одной составляющей, меняет ее для всей программки.
    С помощью сторонних библиотек удалось решить проблему с wav. Т.е. получается менять громкость звука, не меняя громкости midi (основано на работе миксера, где "врчуную" пересчитываются громкости звуковых каналов). Но вот с midi - проблема сущенствует и дальше: если менять уровень для девайса, меняется уровень для всей программки (включая wav)

    Из возможных хардкорных (поэтому нежелательных) фиксов я вижу следующие:
    - На лету конвертировать миди-семплы и подменивать громкость перед передачей данных на девайс. Из минусов - довольно накладный и плохочитаемый код самой подмены-на-лету.
    - Создавать отдельный процесс с отдельным звуковым девайсом для миди. Из минусов - синхронизация с основным процессом.
    - Эмулировать миди через wav. Самый "дикий", пока, вариант, так как нужна целая дополнительная библиотечка для всех этих музыкальных инструментов.

    Хотелось бы узнать:
    - Существует ли возможность заставить Windows выдавать разные девайсы для midi и wav?
    - Если первый вариант - нет, то есть ли готовая популярная сторонняя реализация распределения громкости для разных компонентов? Все равно на каком языке, главное, чтобы были сорсы, чтобы "подсмотреть" best practices.


    Заранее благодарен за советы.
     
  13. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    @Zelya, MSDN смотрел? Напр., Changing Internal MIDI Synthesizer Volume - Win32 apps
    А что в нём дикого? FluidSynth подцепил, бонусом — унификация (везде будет звучать одинаково) и в перспективе портабельность.
    --- добавлено 20 янв 2020, предыдущее сообщение размещено: 20 янв 2020 ---
    Раз уж зашёл. В линуксах можно как-нибудь сделать в VS Code такое же меню, как в Windows?
    upload_2020-1-20_13-22-42.png

    Конкретно, интересует KDE.
     
  14. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.291
    Должно быть можно и в KDE, пушо там электрон всё рисует. У меня в Гноме сейчас выглядит вот так:
    Screenshot from 2020-01-20 13-35-27.png
    Опция посередине, которая стоит на "custom"
     
  15. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Как всё просто оказалось.
     
  16. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Увы, штатные методы для регулирования громкости, в частности и midiOutSetVolume, меняют громкость для всей аппликации (т.е. влияет и на громкость wav).
     
  17. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    @Zelya, очевидно, что-то в твоём коде изначально не так. Потому что это ну самый стандартный способ регулировки громкости MIDI.
    Посмотри в исходниках gzdoom, например (лучше постарше, в новых чёрт ногу сломит)
     
  18. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    "Магия" заключается в том, что функции для получения девайсов для wav и для миди (типа waveInGetNumDevs/midiOutGetNumDevs и т.д.) возвращают один и тот же девайс "Microsoft GS Wavetable Synth". Соответственно, любые изменения громкости через API методы, влияют на весь звук.

    За наводку на gzdoom - спасибо, погляжу.
     
  19. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Э-э а зачем, собственно, вообще через wave device работать? Это же жуткий deprecated. Есть же DirectSound.
    Хотя я бы не мучился, а взял бы что-то вроде SDL.
     
  20. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Если кому интересно, то фикс-костыль выглядит приблизительно так.
    Проблема дейстивтельно зарыта в новой системе звукового API (WASAPI), которая появилась в Висте. Теперь система, с одной стороны, разделяет сессии (IAudioSessionControl) на каждый процесс, но мешает все девайсы в кучу (слепливая все midiOutOpen, waveOutOpen и др. в одну сессию).
    Но через IAudioClient можно достукаться до метода Initialize, который умеет принимать Guid, как идентификатор сессии (в передлах процесса). По дефолту, используя старый API (midiOutOpen, waveOutOpen) все Guid - пустые, и весь звук лепится в одну сессию. Если же мы вызовем этот метод, используя сгенерированный Guid, мы получим еще одну сессию для нашего процесса. Теперь есть возможность, контролировать звук отдельно.
     
    Последнее редактирование: 21 янв 2020
  21. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Объясните, пожалуйста, кто может, dynamic/static link dll-ок в Винде. Я в этом деле дуб. Коротко поясню в чем проблема.
    Есть нативаня программка, которая использует mydll.dll. mydll.dll имеет ряд выпущенных наружу функций. Но для "защиты" использует хитрость, при которой в DllMain ломаются некторые внутренние данные. Теперь вопросы:
    1. При динамическом линковании, как я понял, dll всегда вызывает DllMain, при загрузке. Так ли это и можно ли это обойти?
    2. Я не совсем понимаю статическое линкование. Я всегда думал, что в этом случае мы просто вставляем куски бинаря в наш *.ехе. Но, вышеупомянутая программка не работает без mydll.dll. Почему? Как оно линкуется? Почему используется dll, но не вызывается DllMain? Могу ли я прилинковать либу не имея ничего, кроме самой *.dll (h файл я могу написать сам)?
    3. Работает ли статическая линковка для managed C++?
     
  22. Взрывастер

    Взрывастер

    Регистрация:
    12 апр 2019
    Сообщения:
    13
    Кто знает, как запускать midi файлы в MS-DOS? Нужны библиотеки, функции, примеры и др. ресурсы.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление