求帮助,说我这一句缺少存储类或类型说明符 求帮助,
文件 CashShop.h
#ifndef __CASH_SHOP_H
#define __CASH_SHOP_H
typedef struct _CashItem
{
u_long nId; //数据库里的id
u_long dwId; //道具id
int dwPrice; //道具价格,商城币
unsigned short nNum; //道具数量
unsigned short nMax; //单次购买最多多少件
byte discount;//打折10为1折 50为5折 100为10折(也就是不打折)
unsigned short limit;//限量出售多少件.0为不限量
unsigned short remain; //限量时剩余多少件 默认为0
byte empty1; //备用
byte empty2; //备用
byte empty3; //备用
_CashItem()
{
nNum = 1; //初始道具数量为1
nMax = 1; //初始单次购买限制1件
discount = 100; //初始打折为不打折
limit = 0; //初始限量件数为无限制
remain = 0; //初始剩余为0
empty1 = empty2 = empty3 = 0;
}
}CashItem;
typedef struct _CashPage
{
unsigned short nCount; //总共有多少道具
bool bLoaded; //是否已读取当前页
char szName[61]; //当前页名称
int nType;//收费类型0为商城币 1为飞飞币
CashItem szItem[MAX_CASHSHOP_TAB_ITEM];
_CashPage()
{
bLoaded = false; //初始化是否已读取为假
nType = 0;
}
}CashPage;
typedef struct _CashShop
{
unsigned short nItemCount; //总共多少个道具
bool bOpen; //商城是否开放
byte nPage; //总共有多少页道具
int nCash; //玩家商城币
CashPage szPage[MAX_CASHSHOP_TAB];
_CashShop()
{
bOpen = true; //初始化商城为开放
nCash = 0; //初始化角色商城币为0
}
}CashShop;
class CCashShop
{
public:
CCashShop();
~CCashShop();
CashShop m_Shop;
#ifdef __CLIENT
CItemElem* m_CashItemElem[MAX_CASHSHOP_TAB * MAX_CASHSHOP_TAB_ITEM];
void Init(CAr & ar); //初始化数据
void LoadPage(CAr & ar); //载入某页道具数据
//void LoadItem(CAr & ar); //载入道具数据
CItemElem* GetItem(DWORD dwItemId);
#endif //__CLIENT
void Clear(){memset((void*)&m_Shop,0,sizeof(CashShop));} //清空
bool IsOpen(){return m_Shop.bOpen;} //商城是否开放
#ifdef __SERVER
BOOL m_IsConnected;
CQuery m_Query; 说我这一句缺少存储类或类型说明符 求帮助,
BOOL Init(LPCTSTR lpszFileName); //从文件初始化商城数据
int GetItemCash(DWORD dwItemId);
BOOL ConnectDB();
int GetUserCash(DWORD UserId);
BOOL UpdateUserCash(DWORD UserId,int dwCash);
#endif // __SERVER
};
#endif
------ 已启动全部重新生成: 项目: WorldServer, 配置: Release Win32 ------
正在删除项目“WorldServer”(配置“Release|Win32”)的中间文件和输出文件。
正在编译...
StdAfx.cpp
..\_Common\CashShop.h(73) : error C2146: 语法错误 : 缺少“;”(在标识符“m_Query”的前面)
..\_Common\CashShop.h(73) : error C2501: “CCashShop::CQuery” : 缺少存储类或类型说明符
..\_Common\CashShop.h(73) : error C2501: “CCashShop::m_Query” : 缺少存储类或类型说明符
生成日志保存在“file://d:\Blessed Source\Output\WorldServer\Release\BuildLog.htm”中
WorldServer - 3 错误,0 警告
---------------------- 完成 ---------------------
全部重新生成: 0 已成功, 1 已失败, 0 已跳过
Query.h 文件打开
#ifndef _QUERY_H_
#define _QUERY_H_
#include <sql.h>
#include <sqlext.h>
struct QUERY_BINDINFO
{
SQLSMALLINT targetType;
SQLPOINTER targetValue;
SQLINTEGER bufferLength;
SQLINTEGER* strLen_or_Ind;
};
class CQuery
{
public:
// char *DBName, *DBId, *DBPass;
char DBName[256];
char DBId[256];
char DBPass[256];
// 弥措 拿烦荐, BLOB 涝免仿 窜困, NULL 鞘靛蔼
enum { MAXCOL=256, BLOBBATCH=10000, CQUERYNULL=-100, CQUERYEOF=-101,
CQUERYNOCOL=-102, CQUERYERROR=-103 };
private:
SQLHENV hEnv; // 券版 勤甸
SQLHDBC hDbc; // 楷搬 勤甸
char* Col[MAXCOL]; // 官牢爹瞪 拿烦 沥焊
int FindCol(char *name); // 拿烦狼 捞抚栏肺何磐 锅龋甫 茫酒霖促.
public:
SQLHSTMT hStmt; // 疙飞 勤甸. 流立 荤侩且 荐档 乐栏骨肺 public栏肺 沥狼
SQLSMALLINT nCol; // 拿烦 俺荐
SQLCHAR ColName[MAXCOL][50]; // 拿烦狼 捞抚甸
SQLINTEGER lCol[MAXCOL]; // 拿烦狼 辨捞/惑怕 沥焊
CQuery(); // 积己磊
~CQuery(); // 颇鲍磊:楷搬 勤甸阑 秦力茄促.
void PrintDiag( LPCTSTR szSQL, SQLSMALLINT type = SQL_HANDLE_DBC ); // 柳窜 沥焊 免仿
BOOL Connect(int Type, char *ConStr, char *UID=NULL, const char *PWD=NULL); // 单捞磐 家胶俊 楷搬茄促.
void DisConnect(); // 单捞磐 家胶 楷搬阑 谗绰促
BOOL Exec(LPCTSTR szSQL); // SQL巩阑 角青茄促.
BOOL Exec(LPCTSTR szSQL, int nCount, QUERY_BINDINFO info[]);
BOOL PrepareFetch();
BOOL Execute( LPCTSTR lpszFormat, ... );
int ExecGetInt(LPCTSTR szSQL); // SQL巩阑 角青窍绊 霉锅掳 拿烦狼 沥荐 佬澜
void ExecGetStr(LPCTSTR szSQL, char *buf); // SQL巩阑 角青窍绊 霉锅掳 拿烦狼 巩磊凯 佬澜
BOOL Fetch(); // 茄 青 啊廉坷扁
void Clear(); // 目辑 秦力 棺 攫 官牢爹
int GetInt(int nCol); // 沥荐屈 拿烦 佬扁
int GetInt(char *sCol); // 沥荐屈 拿烦 佬扁
__int64 GetInt64( int nCol );
__int64 GetInt64( char* sCol );
EXPINTEGER GetExpInteger( int nCol ) { return GetInt64( nCol ); }
EXPINTEGER GetExpInteger( char* sCol ) { return GetInt64( sCol ); }
SERIALNUMBER GetSerialNumber( int nCol )
{
return GetInt( nCol );
}
SERIALNUMBER GetSerialNumber( char* sCol )
{
return GetInt( sCol );
}
float GetFloat(int nCol); // 角荐屈 拿烦 佬扁
float GetFloat(char *sCol); // 角荐屈 拿烦 佬扁
char GetChar(int nCol); // 角荐屈 拿烦 佬扁
char GetChar(char *sCol); // 角荐屈 拿烦 佬扁
void GetStr(int nCol, char *buf); // 巩磊凯屈 拿烦 佬扁
void GetStr(char *sCol, char *buf); // 巩磊凯屈 拿烦 佬扁
int ReadBlob(LPCTSTR szSQL, void *buf);
void WriteBlob(LPCTSTR szSQL, void *buf, int size);
BOOL BindParameter(SQLUSMALLINT parameterNumber,
SQLSMALLINT inputOutputType,
SQLSMALLINT valueType,
SQLSMALLINT parameterType,
SQLUINTEGER columnSize,
SQLSMALLINT decimalDigits,
SQLPOINTER parameterValuePtr,
SQLINTEGER bufferLength,
SQLINTEGER *strLen_or_IndPtr);
BOOL MoreResults( void );
void WriteLogFile(char *strLog,...);
static BOOL EnableConnectionPooling();
};
// TODO: 葛碘 盒府
// 鞠龋拳等 配奴阑 秦刀秦辑 菩胶况靛肺 掘绰促.
// 抗: 配奴 - 3A08DB22
extern BOOL GetPWDFromToken( const char* szToken, char* szPWD );
#endif