我在一个头文件中声明了一个函数为
void waveOutErrorMsg(MMRESULT mmr,char* szTitle);
如果我不在这个头文件中不用
#include "mmsystem.h"
则会报下面的错误
error C2065: 'MMRESULT' : undeclared identifier如果用了#include "mmsystem.h"
则会报下面的错误
c:\program files\microsoft visual studio\vc98\include\mmsystem.h(694) : error C2011: 'waveformat_tag' : 'struct' type redefinition
还有好多重复声明的错误是不是我哪里的设置有问题呀?谢谢大家帮忙
void waveOutErrorMsg(MMRESULT mmr,char* szTitle);
如果我不在这个头文件中不用
#include "mmsystem.h"
则会报下面的错误
error C2065: 'MMRESULT' : undeclared identifier如果用了#include "mmsystem.h"
则会报下面的错误
c:\program files\microsoft visual studio\vc98\include\mmsystem.h(694) : error C2011: 'waveformat_tag' : 'struct' type redefinition
还有好多重复声明的错误是不是我哪里的设置有问题呀?谢谢大家帮忙
#ifndef xxxxx
#define xxxxx
........
头文件内容
........
#endif
来避免重复加载了吗?
试试在包含MMRESULT的cpp中去掉#include "stdafx.h"
#define _MMRESULT_INCLUDE...最后再写上
#endif这样子,你就可以放心地随意加上#include "mmresult.h"了。编译器会保证不重复加载已尼加载过的头文件。
是这样的,我这个头文件是需要依赖winmm.lib库的
而我看别人用这个头文件中什么都没包括
而我用这个头文件就报了error C2065: 'MMRESULT' : undeclared identifier
我想时程序设置的问题吧
#ifndef xxxxx
#define xxxxx
........
头文件内容
........
#endif
来避免重复加载
#ifndef xxxxx
#define xxxxx
........
头文件内容
........
#endif
来避免重复加载
=============================
模块名称: waveout.h
============================= [目的]
方便waveOutXXX函数族的使用,使其对象化
[描述]
该模块包括CWaveOut类,这是个封装了录音操作的类。
[用法]
此类是基础类,建议不要直接使用该类
[依赖性]
Winmm.lib [修改记录]
版本: 1.01.01
日期: 01-11-1
作者: Brant Q
备注:
\*------------------------------------------------------------------------------*/
#ifndef _WAVEOUT_H_
#define _WAVEOUT_H_
void waveOutErrorMsg(MMRESULT mmr,char* szTitle);class CWaveOut
{
public:
BOOL CloseDev();
void SetLastMMError(MMRESULT mmr);
MMRESULT GetLastMMError();
virtual ~CWaveOut(); CWaveOut();
BOOL OpenDev(WAVEFORMATEX* pfmt,DWORD dwCallback,DWORD dwCallbackInstance,DWORD fdwOpen);
operator HWAVEOUT() const;
protected: MMRESULT m_mmr; HWAVEOUT m_hOut;
};
#endif这是我用的头文件,是别人的共享代码,肯定不会有错的
我想就是我的设置有问题
我还看见别人的程序中在FileView中External Dependencies中出现了好多头文件
不知是怎么加进去的
#include "xxxx.h" //该头文件包含了MMRESULT的定义
#include "waveout.h"