На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Воспроизведение Mid файлов из ресурса
    :( Люди как воспроизвести миди файл из ресурса програмы ?

    Знаю как воспроизводить из файла :
    ExpandedWrap disabled
      // 1.
      MCIHwnd = MCIWndCreate(Application->Handle, HInstance, NULL, "test.mid");
      MCIWndPlay(MCIHwnd);
      // 2.
      mciSendString("open ding.mid .... ",NULL, 0, NULL); //точно не помню
      mciSendString("play snd repeat",NULL, 0, NULL);

    А как это сделать из ресурса програмы ???
      Хм, вот тут работу с ресурсами обсуждали - Вставка битмапов из ресурса

      Добавлено
      Правда вот запустить midi придётся далеко не с помощью mciSendString

      Так, а зачем вообще в ресурсы midi загоняешь ?
        Для того чтоб прога была махонькой и компактной, а не з кучей файлов ! Ээ, некоторые люди умеют это делать 8-)...
          Цитата Dr. Ace @
          Для того чтоб прога была махонькой и компактной, а не з кучей файлов !

          Хм, ну тогда сам exe будет большой :)
            Не очень. Где-то 300К(WinApi) или 800К (С++Builder) :)
              Мне такое один умный человек посоветовал...
              Цитата
              со временем ты поймешь, что чем больше разных модулей в программе(а не все в одной куче), тем лучше, из-за того, что приложение при загрузке будет меньше весить, будет легче сопровождаться, развертываться и обновляться.
                Может вы и правы. Но вопрос не о том, сколько оно будет весить :D, а том как это заделать ...
                  Вроде как именно midi файл не получится.
                    Цитата P.O.D @
                    Вроде как именно midi файл не получится.

                    8-) Ну не знаю ... По теории не знаю, а вот файлик который доказывает обратное (голая практика) накину :wacko: Факты вещь упрямая !
                    Прикреплённый файлПрикреплённый файлArt.rar (79.31 Кбайт, скачиваний: 293)
                      Dr.Ace, да. Я совсем забыл про кряки ;) Там кстати xm файл, но все равно интересно. Сейчас посмотрим...

                      Добавлено
                      1. http://www.delphifr.com/codes/JOUER_XM_EN_PEU_DE_CODE_-NO_DLL-/23849.aspx
                      2. http://www.wasm.ru/src/4/ufmod.zip
                        Не, господа, вы не правы!
                        Когда один экзешник и его размер меньше 2-3 мб, то это рулит!
                        Зачем на маленький проект юзать кучу фигни? И еще, ексли используется файл
                        ресурсов, то те ресурсы, которые не юзаются, не подгружаются в оперативу, а учитывая небольшой размер проги, то все ок :)

                        ps: asm forever!
                          ExpandedWrap disabled
                            #define WIN32_LEAN_AND_MEAN
                             
                            #include <dmusici.h>
                             
                            #define IDR_RCDATA_MID  12345
                             
                            #pragma comment(lib, "dxguid")
                            #pragma comment(lib, "ole32")
                            #pragma comment(lib, "user32")
                             
                            IDirectMusicLoader* g_pLoader = NULL;
                            IDirectMusicPerformance* g_pPerformance = NULL;
                            IDirectMusicSegment* g_pSegment = NULL;
                             
                            int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
                            {
                            CoInitialize(NULL);
                             
                            CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, IID_IDirectMusicLoader, (void**)&g_pLoader);
                            CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC, IID_IDirectMusicPerformance, (void**)&g_pPerformance);
                             
                            g_pPerformance->Init(NULL, NULL, NULL);
                            g_pPerformance->AddPort(NULL);
                             
                            HMODULE hModule = GetModuleHandle(NULL);
                            HRSRC hResource = FindResource(hModule, MAKEINTRESOURCE(IDR_RCDATA_MID), RT_RCDATA);
                            HGLOBAL hData = LoadResource(hModule, hResource);
                             
                            DMUS_OBJECTDESC desc = {sizeof(DMUS_OBJECTDESC)};
                            desc.pbMemData = (BYTE*)LockResource(hData);
                            desc.llMemLength = SizeofResource(hModule, hResource);
                            desc.guidClass = CLSID_DirectMusicSegment;
                            desc.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_MEMORY;
                             
                            g_pLoader->GetObject(&desc, IID_IDirectMusicSegment, (void**)&g_pSegment);
                            g_pSegment->SetParam(GUID_Enable_Auto_Download, -1, 0, 0,(void *)g_pPerformance);
                             
                            g_pPerformance->PlaySegment(g_pSegment, 0, 0, NULL);
                            MessageBox(NULL, "Click OK to Stop.", "Playing MIDI...", MB_OK);
                            g_pPerformance->Stop(g_pSegment, NULL, 0, 0);
                             
                            g_pPerformance->CloseDown();
                            g_pLoader->Release();
                            g_pPerformance->Release();
                            g_pSegment->Release();
                             
                            CoUninitialize();
                            return 0;
                            }

                          гы, люблю из пушки по воробьям лупить... картечью %)

                          Добавлено
                          .rc
                          ExpandedWrap disabled
                            12345   RCDATA  "GIMN2.MID"
                            а на делфях код? а чо за хедер такой <dmusici.h> ??
                              Цитата wareznick @
                              а на делфях код?

                              а самому написать? или спрашивай в соответствующем разделе: Delphi: Multimedia

                              Цитата wareznick @
                              чо за хедер такой <dmusici.h> ??

                              один из хедеров DirectX Audio
                                я то си-синтаксис понимаю и на сях программил. Меня интересует такое на Делфях и через АПИ
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0392 ]   [ 16 queries used ]   [ Generated: 25.04.24, 16:36 GMT ]