如何解决错误LNK2019:未解析的外部符号

时间:2015-03-11 07:59:55

标签: c++

我的老师给了我以下代码来制作带有波形可视化的录音机程序。但是我坚持下面显示的错误。

.ccp

#include "StdAfx.h"
#include "resource2.h"

using namespace std;


//Globals for sound wave visualistion

int number, length, byte_samp, byte_sec, bit_samp;

static int sampleRate = 11025;

const int NUMPTS = 11025 * 10;

bool mono = TRUE;

bool PLAY = FALSE;

errno_t wavfile;

char * filename;

int s_rate = 11025;

double limit = 10000.0;

FILE * stream;

/*  Declare Windows procedure  */

LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Declare procedures */

int readSample(int number,bool leftchannel);

void SaveWavFile(char *FileName, PWAVEHDR WaveHeader);

void Wav(char *c, HWND hWnd);

/*  Make the class name into a global variable  */

char szAppName[ ] = "Recorder";

resource2.h

#ifndef RESOURCE_H_INCLUDED

#define RESOURCE_H_INCLUDED

#define INP_BUFFER_SIZE 16384

#define IDC_RECORD 1

#define IDC_PLAY 2

#define IDC_STOP 3

#define NUM 20000

//defines for menu

#define APP_SAVE 1003

#define APP_EXIT  1004
#endif // RESOURCE_H_INCLUDED

我一直在收到错误:

  

错误LNK2019:未解析的外部符号 imp__waveOutOpen @ 24   在函数" long __stdcall WindowProcedure中引用(struct HWND   *,unsigned int,unsigned int,long)" (?WindowProcedure @@ YGJPAUHWND __ @@ IIJ @ Z)错误LNK2019:未解决   函数中引用的外部符号 imp__waveInPrepareHeader @ 12   " long __stdcall WindowProcedure(struct HWND *,unsigned int,unsigned   整型,长)" (?WindowProcedure @@ YGJPAUHWND __ @@ IIJ @ Z)1> recorder.obj:   错误LNK2019:未解析的外部符号 imp__waveInOpen @ 24   在函数" long __stdcall WindowProcedure中引用(struct HWND   *,unsigned int,unsigned int,long)" (?WindowProcedure @@ YGJPAUHWND __ @@ @ IIJ Z)

请告诉我如何解决这个问题,我已经摸不着头几个小时了。

1 个答案:

答案 0 :(得分:1)

这不是所有代码,因为没有在其中调用这些函数。它们是winmm.dll中定义的Windows函数,因此链接到winmm.lib。究竟该怎么做取决于你的编译器。