Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Программирование под Win32 для начинающих (http://forum.oszone.net/showthread.php?t=30863)

Claymin 03-06-2002 23:57 210448

Если можно в двух словах - какие надо #include и как называются функции, которые делают прогу способной:

Бегать под W2k
Рисовать на экране пиксели (лучше в fullscreen)
Играть MIDI и mp3
Реагировать на ввод с клавиатуры и шебершание мышой
Смотреть системный таймер

Или ткните меня носом где инфу по этим вопросам можно найти. Буду очень благодарен.

Можно на английском.

[s]Исправлено: Claymin, 1:01 4-06-2002[/s]

ivank 04-06-2002 08:44 210449

Помогите ламеру
 
Во-первых нужен windows-компилятор. Их штук дцать наберётся.

Цитата:

Бегать под W2k
<windows.h>

Цитата:

Рисовать на экране пиксели (лучше в fullscreen)
Зависит от того на сколько эта операция критична. В простейшем случае хватит GDI, а так DirectDraw.

Цитата:

Играть MIDI и mp3
MIDI - точно через DirectSound играть. mp3 без дополнительных кодеков (fmod, dbass) вроде вообще низя.

Цитата:

Реагировать на ввод с клавиатуры и шебершание мышой
Орять же зависит от критичности операции -- можно обойтись приёмом сообщений от Windows в Windows Proc, а можно через DirectInput это делать.

Цитата:

Смотреть системный таймер
Системный это какой? Я всегда GetTickCount использовал -- мне хватаеть.

Цитата:

Или ткните меня носом где инфу по этим вопросам можно найти. Буду очень благодарен.
http://msdn.microsoft.com , лучше вообще MSDN купить (В России, благо, пиратов много -- диски дешёвые).

noname00.pas 04-06-2002 12:46 210450

Помогите ламеру
 
В продвинутых языках, типа Turbo Pascal 7.0... :)
Системный таймер смотрится прямо из памяти. 0000:046C - вроде так.

А вообще - смотря для каких целей :)

мп3 играть - это Вы загнули... Такие вещи самому писать надо.

IvanK, у тебя новый имидж? ;)

cheap 04-06-2002 21:15 210451

Помогите ламеру
 
давны-давно создал я тему с таким же заголовком. И...тут же получил предупреждение от когото из модеров "несодержательный заголовок"

ivank 04-06-2002 21:47 210452

Помогите ламеру
 
cheap
Ты прав... Claymin, слышал? Замечание тебе. cheap -- просто мы изголодались по постам в этом форуме, когда тему создают раз в неделю это очень удручает откровенно говоря.

noname00.pas 06-06-2002 22:53 210453

Так-так.... Похоже правил форума не знают ни администратор, ни пользователи. Всем читать пункт 11 общих правил пол часа! :)

А именно:
Запрещается обсуждение действий администрации и вопросов типа "Ну и где вы, админы, у вас тут такое творится" в конференции. Если Вы хотите что-то сказать, делайте это лично, через письма.

Claymin 07-06-2002 23:38 210454

Спасибо за ответы, только я ничего не понял :)

Во-первых я знаю более-менее C++, но только на уровне синтаксиса. А так я даже стандартные библиотеки не очень. Win32 я все равно буду учить в ВУЗе, но это будет года через пол... поэтому хотелось бы сейчас просто знать как что называется а разбираться во всей этой безобразии потом, это на кучу топиков потянет :) А то заглядывал как-то в исходники Xonix32, долго потом отходил... Куча каких-то define, функции все большими буквами... бред...

Компилятор сейчас стоит BC++ 5.02 но если сильно надо могу поставить MSVC++.

Хотелось бы просто посмотреть исходник, который просто создаёт процесс, и потом просто его закрывает, а также узнать
имена и тип вводимых значений для функций которые занимаются перечисленными операциями... А то <windows.h>... он же сам по себе ничего не даст, там есть куча функций, которые я понятия не имею как называются и как работают, и от них зависит, подружится ли прога в Виндаем.

Я совершенно не против разбираться в этом всем сам, только пытаюсь начать откуда-то, где хоть что-нибудь понятно... А так мне иногда кажется, что легче выучить asm чем MSDN

ЗЫ про правила... сорри,  а как надо было назвать топик, в котором ламер пытается спросить как с нуля научиться программировать под Win32 :) Я не специально, честно :)

ЗЫЫ Про mp3 я чего-то действительно затупил... Хм... а вообще это сильно сложно декодек написать?

ЗЫЫЫ Лучше всего наверное все делать через Прямой Х. Я в принципе не 3D engine пишу, но желательно чтобы прога не тормозила топорно на P200, тем более при не такой уж навороченной графике. Таймер в принципе все равно какой - системный, не системный, главное чтобы по нему время можно было отслеживать, хотя бы 16 раз в секунду. И еще - желательно чтобы конечный продукт весил как можно меньше, он по идее разрабатывается как downloadable freeware.

Кстати еще такие вопросы - я компилял прогу (совсем досовскую, с текстовым интерфейсом), так сам экзешник весил килобайт сорок от силы, а тот мусор, который вместе с ним в папке был (всякие ilf, obj, tds) - еще на пару мегабайт тянул. Причем прога вроде и без них работает прекрасно. Вопрос - кому они там надо? И можно ли сделать прогу как-бы из кусочков, чтобы не компилировать все каждый раз, а менять только функции, отвечающие за главное меню например. Или это уже новый топик создавать надо? В Зоне Ламера :)

ivank 08-06-2002 08:38 210455

Раз тебе лень разбираться в MSDN'е (там не на столько всё сложно, только надо знать что ты хочешь), то лучше купи какую-нибудь книгу по WinAPI, там обычно всё разбирают начиная с простейших примеров. [s]Вечер подролбнее отвечу.[/s]

Claymin 09-06-2002 00:26 210456

Да мне не лень, просто инета не так много чтобы в онлайн искать что мне нужно... А книгу купить... :) Это что-то общеобразовательное, я уже пробовал... за пару дней прочитываешь, нового узнаешь мизер, а стоит такая макулатура сравнительно недешево... Наверно все-таки придется искать MSDN который на дисках... :cranky:

ivank 09-06-2002 12:32 210457

Claymin
Цитата:

Это что-то общеобразовательное, я уже пробовал... за пару дней прочитываешь, нового узнаешь мизер, а стоит такая макулатура сравнительно недешево...
Это зависит от книги. Конечно"Пройди путь от ламера до куль программера за неделю" многому не научит. Хороших книг очень много. ричём книга != документация, то есть книги хороши для введения в предмет, понимания технологии, а конкретные детали уже надо смотреть в документации (MSDN'е том же).

Claymin 10-06-2002 01:02 210458

А как например должна называться хорошая книга?

ivank 10-06-2002 17:44 210459

Claymin
Не знаю. Из того что я непосредственно читал по Win32 это "Inside Wndows 2000" и "Programming Applications for Windows". А для введения не знаю -- сам я по ужаснейшей книге учил WinAPI, никому не рекомендую. Лучший способ выбрать книгу -- зайди на всякие инет-магизины, и почитать ревьюшки.

Admiral 03-12-2005 03:16 379365

Claymin
Про МР3 в С++ http://gamemaker.webservis.ru/articles/mp3/mp3.htm.

Кстати а с асм вставками не пробовал кодить?
Низко уровневое декодирование МР3 бывает?

pva 05-12-2005 12:46 379983

Да, крутые тут ребята разговаривают. Извините, что вмешиваюсь. Если не сильно важна офигенная скорость выполнения, то можно
обойтись WinAPI.

#define WINVER 0x0400
#include <windows.h>

1. Для работы с таймером в WinNT рекомендуется использовать SetTimer/KillTimer. Если нужно разрешение вполть до наносекунд, можно использовать счётчик квантов (что-то вроде GetThreadUserTime). Но этот урод тормозит систему.

2. Миди играется функциями #include <mmsystem.h> midiOutOpen/midiOutClose/midiOutPrepareHeader/midiOutUnprepareHeader/midiOutWrite
и т.д.

3. mp3 играется при помощи ACM (audio compression manager), который знает все кодеки (кодек должен быть установлен) или MCI (multimedia control interface) Это подход высокого уровня, который запускает параллельный поток или процесс для воспроизведения. Ему достаточно указать файл или закачивать этот файл в поток i/o.

4. Если установлен DirectX 9, то смысла использовать DirectInput по-моему нет. Всё равно там используется очередь событий.

Всю инфу на английском языке можно найти в msdn или её краткой версии в хелпе у борланда (win32.hlp). Там всё довольно доходчиво описано.

SergeCpp 05-12-2005 15:42 380044

Вложений: 1
Хорошую книгу написал Джеффри Рихтер

Вот исходники вот этих моих часов

Вот ещё исходники вот такой моей программы синхронизации каталогов

А вот посложнее — игра "Жизнь"

Про неё можно по-русски почитать здесь

Проект для VisualStudio 6

Есть и рисование и вычисления...

Есть даже "исходный вариант" — "американец" Jeff Prosise делал...

Заодно полезно сравнить, как "было" и как "стало"

Все программы написаны серьёзно и работают не один год

ivank 05-12-2005 20:17 380161

Посмотрите на дату создания темы. Нафига отвечать на вопрос заданный 3 года назад?

Admiral 06-12-2005 00:05 380208

ivank
На то он и форум что люди всё время обсуждают вопроси, которые были заданы даже три года назад. В ответах уже эсть инфа про DirectX 9, а ведь эсли б он был три года назад то проблема б может по другому решилась.
Вопроси старые - реализацыя (техника) новая.


Время: 16:34.

Время: 16:34.
© OSzone.net 2001-