Использование mciSendString в проекте Qt

Я пытаюсь использовать функцию mciSendString, чтобы открывать и закрывать лоток для компакт-дисков в Qt. Вот код:

#include <windows.h>
MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback);
void OpenCD()
{
    mciSendString((LPCTSTR)"set cdaudio door open",(LPTSTR)NULL, (UINT)0, (HANDLE)NULL);
}
void CloseCD()
{
    mciSendString((LPCTSTR)"set cdaudio door closed",(LPTSTR)NULL, (UINT)0, (HANDLE)NULL);
}    

Но я получаю эту ошибку: "неопределенная ссылка на`mciSendStringW(wchar_t const*, wchar_t*, unsigned int, void*)'"Как я могу исправить эту ошибку и использовать функцию mciSendString без каких-либо проблем?

1 ответ

Решение

Попробуйте добавить одну из следующих строк в pro-файл:

LIBS += path_to_lib/Winmm.lib

или же

LIBS += path_to_lib/Winmm.dll

Также вы можете включить Mmsystem.h и Windows.h

Ссылка на сайт
Например:
Pro-файл содержит ссылку на lib-файл из установленного SDK:

LIBS += $$quote(C:\\Program Files\\Microsoft SDKs\\Windows\\v7.0A\\Lib\\WinMM.lib)

В cpp-файле:

#include "Windows.h"
#include "mmsystem.h"
//MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback);
...
void MainWindow::on_pushButton_clicked() {
   mciSendString((LPCTSTR)"set cdaudio door open",(LPTSTR)NULL, (UINT)0, (HWND__*)0);
}
Другие вопросы по тегам