Как к PlaySound в C++ с помощью Windows API?

Да, конечно, существуют такие сценарии.

  • JIT-компиляция может использовать профилирование времени выполнения для оптимизации конкретных случаев на основе измерения характеристик того, что код на самом деле делает в данный момент и может перекомпилировать "горячий" код по мере необходимости. Это не теоретически; HotSpot Java на самом деле делает это.
  • Дрожания могут оптимизировать для определенного ЦП и конфигурации памяти, используемой на фактических аппаратных средствах, где программа, оказывается, выполняется. Например, много приложений.NET будут работать или в 32-битном или в 64-битном коде, в зависимости от того, где они - JITted. На аппаратных средствах на 64 бита они будут использовать больше регистров, памяти и лучшую систему команд.
  • Виртуальные вызовы метода в жестком цикле могут быть заменены статическими вызовами на основе знания во время выполнения типа ссылки.

я думаю, что в будущем будут прорывы. В частности, я думаю, что комбинация JIT-компиляции и динамического контроля типов будет значительно улучшена. Мы уже видим это в пространстве JavaScript с V8 Chrome и TraceMonkey. Я ожидаю видеть другие улучшения подобной величины в не слишком отдаленном будущем. Это важно, потому что даже так называемые языки "со статическим контролем типов" имеют тенденцию иметь много динамических функций.

11
задан WiSaGaN 5 September 2013 в 05:17
поделиться

4 ответа

Можете ли вы использовать абсолютный путь и проверить, не является ли это ошибкой пути?

Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC); 
1
ответ дан 3 December 2019 в 07:38
поделиться
int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC); 
}

С флагом SND_ASYNC ваша программа может (и будет) немедленно завершиться!

Попробуйте PlaySound ("kenny g.WAV", NULL, SND_SYNC ); сначала проверьте, работает ли это.

1
ответ дан 3 December 2019 в 07:38
поделиться

Вам нужно использовать абсолютный путь, убедитесь, что вы отправляете имя файла (используйте флаг SND_FILENAME), и приостановите программа достаточно долго, чтобы воспроизвести звуковой файл (например, использовать getchar ()). Вам необходимо связать библиотеку winmm.lib в настройках вашего проекта и включить #include windows.h и mmsystem.h в заголовок.

#include <windows.h>
#include <mmsystem.h>

int main() {
    PlaySoundA((LPCSTR) "C:\\kenny g.WAV", NULL, SND_FILENAME | SND_ASYNC);
    getchar();
}

API: http://msdn.microsoft.com/en-us/ library / ms712879 (VS.85) .aspx
Так и должно быть. Дайте мне знать, спасибо!

10
ответ дан 3 December 2019 в 07:38
поделиться

Говоря о пути, ваш файл данных должен находиться там, где находится ваш исполняемый файл, а не там, где находится ваш исходный файл, если путь не абсолютный.

И да, этот самый вопрос был спросил 9 лет назад;)

0
ответ дан 3 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: