【发布时间】:2012-04-24 12:01:43
【问题描述】:
我编写了一个代码但有错误并且无法解决它们:-
以下错误在我的一个头文件中(代码如下所示)
错误 C2143:语法错误:缺少 ';'在'*'之前
错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
头文件代码:-
#ifndef _DEVICE_SOURCE_FICARD_HH
#define _DEVICE_SOURCE_FICARD_HH
#ifndef _FRAMED_SOURCE_HH
#include "FramedSource.hh"
#endif
#include <DeviceSource.hh>
typedef struct LtagBufferEntry
{
char *pBuffer;
struct LtagBufferEntry *pNext;
} LBufferEntry;
class FICardDeviceParameters {
public:
(RetEntry*)(*p_lm_lock_fn)( void *data ); //error at this line
void (*p_lm_unlock_fn)( void *data );
int nFICardFrameSize;
//%%% TO BE WRITTEN %%%
};
class DeviceSourceFICard: public DeviceSource {
public:
static DeviceSourceFICard* createNew(UsageEnvironment& env, FICardDeviceParameters fi_params,
DeviceParameters params);
protected:
DeviceSourceFICard(UsageEnvironment& env, FICardDeviceParameters fi_params, DeviceParameters params);
// called only by createNew(), or by subclass constructors
virtual ~DeviceSourceFICard();
private:
// redefined virtual functions:
virtual void doGetNextFrame();
private:
void deliverFrame();
private:
DeviceParameters fParams;
LBufferEntry *pData;
char * pRetData;
//int nFICardFrameSize;
FICardDeviceParameters fiParams;
};
#endif //_DEVICE_SOURCE_FICARD_HH
RetEntry的定义:-
typedef struct tagRetBuffer
{
char *pBuffer;
int nDataLn;
} RetEntry;
void InitBufferHandling();
void TransferBuffer( void *pBuffer );
RetEntry *lm_lock_fn( void *data );
void lm_unlock_fn( void *data );
int initLm555Settings(void);
void play();
void afterPlaying(void*);
void init_play();
void StartRTPProcess(void);
如何解决它们...
【问题讨论】:
-
我假设它会告诉您与此错误相关的特定行?
-
我猜
RetEntry在错误发生时是未定义的。缺少#include 吗? -
行号会有所帮助,但这个“C++ 不支持默认整数”让您清楚地知道您在寻找什么!
-
哇,这是可怕的 C++ 代码。
-
上面提到的所有三个错误(在代码中):- (RetEntry*)(*p_lm_lock_fn)( void *data );
标签: c++ visual-studio-2010 visual-c++ pointers typedef