C++ Winapi MIDI C++;程序-对的未定义引用midiOutGetNumDevs@0
我正在写学士学位论文,在使用Windows MIDI时遇到了一些问题。我使用C++和代码块ID.< /P> 下面是来自类标题的代码C++ Winapi MIDI C++;程序-对的未定义引用midiOutGetNumDevs@0,c++,winapi,linker,midi,C++,Winapi,Linker,Midi,我正在写学士学位论文,在使用Windows MIDI时遇到了一些问题。我使用C++和代码块ID.< /P> 下面是来自类标题的代码 #ifndef MIDISENDER_H #define MIDISENDER_H #include <windows.h> #include <mmsystem.h> #pragma comment(lib, "winmm.lib") #include <iostream> using namespace std; c
#ifndef MIDISENDER_H
#define MIDISENDER_H
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
#include <iostream>
using namespace std;
class MidiSender
{
private:
HMIDIOUT devHandle;
MIDIOUTCAPS devInfo;
unsigned int totalDevs;
vector <string> devList;
public:
MidiSender();
void openDevice();
void openDevice(unsigned int dev);
void closeDevice();
private:
void getAllDevices();
void setDevice(unsigned int dev);
};
#endif // MIDISENDER_H
\ifndef MIDISENDER\u H
#定义MIDIUH
#包括
#包括
#pragma注释(lib,“winmm.lib”)
#包括
使用名称空间std;
类MIDI发送器
{
私人:
德夫汉德尔;
MIDIOUTCAPS devInfo;
无符号整数totalDevs;
向量机;
公众:
midissender();
void openDevice();
void openDevice(未签名的int-dev);
无效关闭设备();
私人:
void getAllDevices();
void setDevice(未签名的int-dev);
};
#endif//midif\H
这是构造函数,出现问题的地方:
#include "midisender.h"
MidiSender::MidiSender()
{
totalDevs=midiOutGetNumDevs();
cout << "Total devices MIDI out: " << totalDevs << endl;
}
#包括“midissender.h”
midissender::midissender()
{
totalDevs=midiOutGetNumDevs();
如果你不是使用VisualC++,那么可能是不支持“γ”语用注释语句,而必须在命令行上链接WimM.LIB。我使用的是G++MIW编译器。所以我应该试试Visual C++编译器?不,你只需要指定-LWIMMM(或者-LWMM.LIB?)作为链接器选项。您的代码使用了mingw不支持的#pragma注释(lib,“winmm.lib”)。这就是链接器找不到该函数的原因。非常感谢…它现在可以工作了..它是-lwinmm链接器标志