1

QtでmciSendString関数を使用して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 関数を問題なく使用するにはどうすればよいですか?

4

1 に答える 1

1

次の行のいずれかをプロファイルに追加してみてください。

LIBS += path_to_lib/Winmm.lib

また

LIBS += path_to_lib/Winmm.dll

また、Mmsystem.h と Windows.h を含めることもできます。

リンク
例:
Pro ファイルには、インストールされた SDK からの lib-file へのリンクが含まれます。

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);
}
于 2012-08-14T20:30:53.597 に答える