1. C++ / Говнокод #15978

    +16

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #include <windows.h>
     #include <iostream>
     int main ()
     {
         HINSTANCE result;
         result=ShellExecute(NULL,NULL,L"E:\\.mp3",NULL,NULL,SW_SHOWDEFAULT);
         if ((int)result<=32)
         std::cout << "Error!\nReturn value: " << (int)result << "\n";
         return 0;
     }

    Как написать mp3-плеер на с++ в 10 строк без использования сторонних библиотек?
    Гении с cyberforum знают ответ!

    http://www.cyberforum.ru/cpp-beginners/thread444490-page3.html

    Запостил: gost, 13 Мая 2014

    Комментарии (30) RSS

    • > без использования сторонних библиотек?
      Ответить
      • Но ведь сторонних библиотек тут и не используют.

        P.S. Мне кажется, или у .mp3 звездочка отклеилась?
        Ответить
    • cleaned
      Ответить
    • Ээх, вспомнил молодость, порылся в анналах и нашел свой плеер без внешних либ и смс, который писал на первом курсе:
      int main(int argc, char **argv) {
          if (argc == 2) {
              char buf[256];
              strcpy(buf, "play ");
              strcat(buf, argv[1]);
              strcat(" wait");
              printf("%d\n", mciSendString(buf, NULL, 0, 0));
          }
          return 0;
      }
      Ответить
      • cleaned
        Ответить
        • > В любом случае без сторонних кодеков кроме *.wav ничего не откроется.
          Сейчас затестил - mp3 отлично играет в изкоробочной XP :) Правда на id3v2 тегах с обложками загибается, пришлось их отрезать.

          А вот playSound, емнип, только wav.
          Ответить
          • cleaned
            Ответить
          • cleaned
            Ответить
            • Х.з. XP SP2 чистая, без сторонних кодеков. Там может трабла в том, что он далеко не все мп3 играет? У меня, например, с id3v2 тегами вообще отказывается играть, выдает ошибку. Если теги срезать - играет.

              P.S. Поставил klite кодеки - заработало и с id3v2.
              Ответить
              • А если делать примерно так:
                "open 1.mp4 type mpegvideo alias v"
                "play v wait"
                То и видео играет в окошке.
                Ответить
              • > что он далеко не все мп3 играет?
                Это потому что встроенные в винды кодеки, безо всяких преувеличений, - тупое гавно.
                Ответить
            • >mcisendstring
              Там особый синтаксис. Она даже сидюки умела открывать/закрывать, чем я и пользовался гы-гы.
              "set cd door closed wait" вроде так
              >PlaySound
              Вот не помню, но какая-то из них, а мож и обе вешали поток до окончания звука.
              Но всё-равно стороняя ж библиотека (winmm.dll), я потом освоил другую quartz.dll - она через DirectShow показывала.
              Ответить
              • > вешали поток до окончания звука
                Ну mciSendString вешает если передать "wait", что, в принципе, логично и очевидно.
                Ответить
              • cleaned
                Ответить
                • cleaned
                  Ответить
                  • Я не минусовал, если че, на меня не думай.

                    До кучи пруф с мсдн: SND_ASYNC The sound is played asynchronously and PlaySound returns immediately after beginning the sound.
                    Ответить
              • > стороняя ж библиотека
                Если библиотека стоит в системе изкоробки - какая ж она сторонняя? Эдак и кернел32 сторонней обзовешь...

                Другое дело, что без сторонних кодеков оно не особо пашет.
                Ответить
      • >mciSendString
        О, как близко и знакомо!
        Ответить
      • Какой скилл )))
        Ответить
      • показать все, что скрытоvanished
        Ответить
        • С точки зрения юзера это плейер. Дал файл и он играет. А какая там либа этим занимается - деталь реализации.
          Ответить
          • а синтезатор речи написал на повершеле))
            https://govnokod.xyz/_26604/#comment-527493
            Ответить
    • oo8______________._______e$$$$$$$$$____
      ___o88o__________e$$$$e____$$$$$$$$$$$$___
      ____oo8o________$$$$$$$u__u$$$$$$$$$$$$___
      ______*8_______e$$$$$$$$__$$$$$$$$$$$$$___
      _______oo______$$$$$$$$$__$$$$$$$$$$$$$___
      ________o8_____$$$$$$$$”__$$$$$$$$$$$$____
      _________o8____$$$$$$$$___$$$$$$$$$$$”____
      __________o8___$$$$$$$_____$$$$$$$$$______
      ___________o8___$$$$*_______*$$$$*”_______
      ____________*8_$___________________________
      _____________o8_$e__________________________
      ______________oo_”$$______________________e$_
      _______________*8__”$$u_________________.e$$__
      ________________oo___”$$$e.___________.e$$$*___
      _________________oo_____*$$$$$eeeeee$$$$$$$”____
      __________________8*_______”$$$$$$$$$$$$$*_______
      __________________*8___________”"***”"”__________
      ___________________8o
      ___________________8o
      ___________________oo
      ___________________o8
      _______ooo8oo______88
      ____o8$$888$$$88888$8oooooooooo
      __o8$$8````o8o88$$$$$$88888$88888o
      _o$$$8`````ooooooooo8$$$$$88888888o
      o$$$8`````ooooooooooo88$$$$$$8888888
      8$$8o```ooo8o8oo88888$$$$$$$$$$$88888
      8$$$88oooo8$$$8$$$8$$$$$$$$$$$$$$$8$$
      8$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      o88$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$8
      o8888888888$88$$8$$$$$$$$$$$$$$$$888o
      *8888888888888$$8$$$$88$$$$$$$$$8888o
      _88888$$8888888$$$$$$$$$$$$$$$$88888*
      _*888$$$88888888888$$$$$88$$$$88888*
      __*88888$$$$$8$8888$$$$$88$8888888*
      ___*8888$$$$$$$88$$$$$$$$$$$88888*
      _____*888$$8$88$$$$$$$$$$$$$$$88*
      _______*88$$$$$$$$$$$$$$$$$$$8*
      __________*888$$$$$$$$$$$88*
      Ответить
    • ───────────────────────────────────
      ───────────▄▄█▀██▀█▄▄▄▄────────────
      ─────────▄█▀▀████▄▄█▀▀▀▀█▄▄────────
      ───────▄█░░░░░░░░░░░░░░░░░░█▄──────
      ─────▄██░░░░░░░░░░░░░░░░░░░░▀█▄────
      ────▄██░░░░░░░░░░░░░░░░░░░░░░░██───
      ────█▀░░░░░░░░▄░░░░░░░░░░▄░░░░░▀█▄─
      ───█▀░░░░▄▀▀▀▀░█░░░░░▄▀▀▀░▀▄░░░░░█▄
      ──██░░░░█░▄▀▀▄░█░░░░█░▄▀▀▄░░█░░░░██
      ─██░░░░░█░░▀▀░▄▀░░░░▀▄░▀▀░░▄▀░░░░░█
      ██▀░░░░░▀▀▀▀▀▀░░░░░░░░▀▀▀▀▀░░░░░░░█
      ██░░░░░░░░░░░░░▐░░░░░░░░░░░░░░░░░░█
      █▀░░░░░░░░░░░░░▌░░░░▌░░░░░░░░░░░░░█
      █░░░░░░░░░░░░░▐░▄░▄░▐░░░░░░░░░░░░░█
      █░░░░░░░░▐░░░░░░░░░░░░░░░░░░░░░░░░█
      █░░░░░░░░▌░░░░░░░░░░░░░░░░░░░░░░░██
      █░░░░░░░▐░░▄▀▀▀▀▀▀▀▀▄░░░░░░░░░░░░██
      ─█░░░░░░░▄▀▄████████▄█▄░▌░░░░░░░██─
      ──█░░░░░░█▄█▄▄█▄▄█▄▄██▀░▐░░░░░▄██──
      ──▀▄░░░░░░▀█▄▄▄▄▄▄▄▄▀░░░░░░░▄█▀────
      ────█▄░░▀▄░░░░░░░░░░░░░░░░▄█▀──────
      ─────█▄▄░░▀░░░░░░░░░░░░░▄█▀────────
      ───────▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀──────────
      ───────────────────────────────────
      Ответить
    • А что, ShellExecute работает не только для ехе и для любого расширения зовёт программу-по-умолчанию-для-этого-расширения?
      Не знал.
      Полезная фича.
      Ответить
    • Шок! Нажнетагильский школьник написал самый маленький плеер-убийцу Winamp'а и выложил его исходный код!

      int main()
      {
          system("start C:/file.mp3");
          return 0;
      }
      Ответить
      • ага вот от чего проект winamp'a закрыли, не выдержали конкуренции
        Ответить

    Добавить комментарий