error C2146: 语法错误 : 缺少“;”(在标识符“Lang”的前面) error C2501: “Lang” : 缺少存储类或类型说明符

xinkaiaass 2013-01-23 10:18:01
为什么老报这个错误 网上查是头文件包含错误 可我这个就是头文件啊 代码如下:


#pragma once
#include <vector>
#include <string>

#ifdef UNICODE
#define tstring std::wstring
#else
#define tstring std::string
#endif

#ifdef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H

typedef struct tagLangStruct
{
TCHAR strLangName[256];
TCHAR strFileName[256];
}LangStruct;

#endif

#ifdef _CLANGUAGEMANAGER_H
#define _CLANGUAGEMANAGER_H

class CLanguageManager
{
public:
CLanguageManager(void);
~CLanguageManager(void);
int EnumAll(void);
LPCTSTR GetString(LPCTSTR strID);
void GetLangList(std::vector<tstring>& listLangName);
protected:
std::vector<LangStruct> m_listLang;
TCHAR m_strSelLang[256];
TCHAR m_strBuffer[512];
public:
int SetSel(LPCTSTR strSelLang);
int SetSel(int nSelLang);
};

#endif

extern CLanguageManager Lang;


...全文
296 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
代号95+27 2013-01-23
  • 打赏
  • 举报
回复
那就不知道了 我能编译通过 你仔细检查检查吧
xinkaiaass 2013-01-23
  • 打赏
  • 举报
回复
引用 9 楼 XIAIBIANCHENG 的回复:
我这边编译没问题啊 难道你在其它地方还有定义
没有吧 找到那个定义 右键转到定义就是这里啊
代号95+27 2013-01-23
  • 打赏
  • 举报
回复
我这边编译没问题啊 难道你在其它地方还有定义
xinkaiaass 2013-01-23
  • 打赏
  • 举报
回复
引用 5 楼 XIAIBIANCHENG 的回复:
我发的那个 已经改过 编译没错 可以运行
error C2011: “tagLangStruct” : “struct”类型重定义 参见“tagLangStruct”的声明 error C2011: “CLanguageManager” : “class”类型重定义 参见“CLanguageManager”的声明 变成这个了
huxiaotao12 2013-01-23
  • 打赏
  • 举报
回复
看不懂啊。。。。
GIS_wudi 2013-01-23
  • 打赏
  • 举报
回复
第一个 #ifdef _TAGLANGSTRUCT_H #define _TAGLANGSTRUCT_H 换成 #ifndef _TAGLANGSTRUCT_H #define _TAGLANGSTRUCT_H
代号95+27 2013-01-23
  • 打赏
  • 举报
回复
我发的那个 已经改过 编译没错 可以运行
代号95+27 2013-01-23
  • 打赏
  • 举报
回复
你这么写 不错才怪#ifdef _CLANGUAGEMANAGER_H #define _CLANGUAGEMANAGER_H
代号95+27 2013-01-23
  • 打赏
  • 举报
回复
#pragma once
#include <vector>
#include <string>

#ifdef UNICODE
#define tstring std::wstring
#else 
#define tstring std::string
#endif

#ifndef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H

typedef struct tagLangStruct
{
	TCHAR strLangName[256];
	TCHAR strFileName[256];
}LangStruct;

#endif

#ifndef _CLANGUAGEMANAGER_H
#define _CLANGUAGEMANAGER_H

class CLanguageManager
{
public:
	CLanguageManager(void);
	~CLanguageManager(void);
	int EnumAll(void);
	LPCTSTR  GetString(LPCTSTR  strID);
	void	GetLangList(std::vector<tstring>& listLangName);
protected:
	std::vector<LangStruct> m_listLang;
	TCHAR  m_strSelLang[256];
	TCHAR  m_strBuffer[512];
public:
	int SetSel(LPCTSTR strSelLang);
	int SetSel(int nSelLang);
};

#endif

extern CLanguageManager Lang;
漫步者、 2013-01-23
  • 打赏
  • 举报
回复
全局数据放cpp文件中试试,记得包含该头文件
xinkaiaass 2013-01-23
  • 打赏
  • 举报
回复
错误在最后 要定义一个变量 类型定义就在上面 还是找不到类型定义
赵4老师 2013-01-23
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧