在Qt项目中使用mciSendString

Using mciSendString in Qt project

本文关键字:mciSendString Qt 项目      更新时间:2023-10-16

我正在尝试使用mciSendString函数在Qt中打开和关闭CD托盘。这是代码:

#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 函数而没有任何问题?

尝试将下一行添加到 pro-file:

LIBS += path_to_lib/Winmm.lib

LIBS += path_to_lib/Winmm.dll

你也可以包括Mmsystem.h和Windows.h

链接
例如:
专业文件包含从已安装的SDK链接到lib文件:

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);
}