#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;
12 个解决方案
#1
错误在最后 要定义一个变量 类型定义就在上面 还是找不到类型定义
#2
全局数据放cpp文件中试试,记得包含该头文件
#3
#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;
#4
你这么写 不错才怪
#ifdef _CLANGUAGEMANAGER_H
#define _CLANGUAGEMANAGER_H
#define _CLANGUAGEMANAGER_H
#5
我发的那个 已经改过 编译没错 可以运行
#6
第一个
#ifdef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
换成
#ifndef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
#ifdef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
换成
#ifndef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
#7
看不懂啊。。。。
#8
error C2011: “tagLangStruct” : “struct”类型重定义
参见“tagLangStruct”的声明
error C2011: “CLanguageManager” : “class”类型重定义
参见“CLanguageManager”的声明
变成这个了
#9
我这边编译没问题啊 难道你在其它地方还有定义
#10
没有吧 找到那个定义 右键转到定义就是这里啊
#11
那就不知道了 我能编译通过 你仔细检查检查吧
#12
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
#1
错误在最后 要定义一个变量 类型定义就在上面 还是找不到类型定义
#2
全局数据放cpp文件中试试,记得包含该头文件
#3
#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;
#4
你这么写 不错才怪
#ifdef _CLANGUAGEMANAGER_H
#define _CLANGUAGEMANAGER_H
#define _CLANGUAGEMANAGER_H
#5
我发的那个 已经改过 编译没错 可以运行
#6
第一个
#ifdef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
换成
#ifndef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
#ifdef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
换成
#ifndef _TAGLANGSTRUCT_H
#define _TAGLANGSTRUCT_H
#7
看不懂啊。。。。
#8
error C2011: “tagLangStruct” : “struct”类型重定义
参见“tagLangStruct”的声明
error C2011: “CLanguageManager” : “class”类型重定义
参见“CLanguageManager”的声明
变成这个了
#9
我这边编译没问题啊 难道你在其它地方还有定义
#10
没有吧 找到那个定义 右键转到定义就是这里啊
#11
那就不知道了 我能编译通过 你仔细检查检查吧
#12
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。