读书人

error C2146: 语法异常 : 缺少“;”(在

发布时间: 2013-02-17 10:44:46 作者: rapoo

error C2146: 语法错误 : 缺少“;”(在标识符“Lang”的前面) error C2501: “Lang” : 缺少存储类或类型说明符
为什么老报这个错误 网上查是头文件包含错误 可我这个就是头文件啊 代码如下:



#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);
voidGetLangList(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;



[解决办法]
全局数据放cpp文件中试试,记得包含该头文件
[解决办法]
#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);
voidGetLangList(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;

[解决办法]
你这么写 不错才怪#ifdef _CLANGUAGEMANAGER_H
#define _CLANGUAGEMANAGER_H
[解决办法]
我发的那个 已经改过 编译没错 可以运行
[解决办法]
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

读书人网 >C++

热点推荐