Немного подправил пример, который видел на стр.
dll файл получился меньше 20 Кб. Искал примеры, чтобы не выскакивало окно консоли, смотрел примеры через виндовс скрипт хост (расширение файла .vbs). Если запускать в Проводнике, то окнА консоли нет, а если в Квике, то есть, не понял, почему...
Убрал проверку на ошибки. mci с MessageBeep микшируется, а mci с mci не смог смикшировать. И в том и моём примере mci устройство после завершения скрипта остаётся открытым. В OnStop или в OnClose надо бы закрыть, или ну его? Я пробовал вставить mciSendString("CLOSE QUIK_MP3", NULL, 0, NULL); в DllMain, когда приходит сообщение DLL_THREAD_DETACH, опять нарвался на зависание Квика...
МС пишет, что в вин10 mci устарел:
Может, есть уже примеры с использованием MediaPlayer?
Кто-то в dll использует
кто-то нет, я не увидел различий, по-всякому работает.
Компилировать можно примеро так:
Это playsnddll.dll.c:
Это playsnd.lua:
dll файл получился меньше 20 Кб. Искал примеры, чтобы не выскакивало окно консоли, смотрел примеры через виндовс скрипт хост (расширение файла .vbs). Если запускать в Проводнике, то окнА консоли нет, а если в Квике, то есть, не понял, почему...
Убрал проверку на ошибки. mci с MessageBeep микшируется, а mci с mci не смог смикшировать. И в том и моём примере mci устройство после завершения скрипта остаётся открытым. В OnStop или в OnClose надо бы закрыть, или ну его? Я пробовал вставить mciSendString("CLOSE QUIK_MP3", NULL, 0, NULL); в DllMain, когда приходит сообщение DLL_THREAD_DETACH, опять нарвался на зависание Квика...
МС пишет, что в вин10 mci устарел:
Может, есть уже примеры с использованием MediaPlayer?
Кто-то в dll использует
| Код |
|---|
#define LUA_LIB #define LUA_BUILD_AS_DLL |
Компилировать можно примеро так:
| Код |
|---|
gcc.exe playsnddll.c -o playsnddll.dll -mdll -O2 -s -L. -llua54 -lWinmm -m64 -std=c17 |
Скрытый текст | ||
|---|---|---|
|
Это playsnd.lua:
Скрытый текст | ||
|---|---|---|
|