我需要为基于Zinc的Flash应用程序重构.dll。
将一个类从master复制并粘贴到分支后,我遇到了一些奇怪的编译错误:
GameInfo.h(15): error C2146: syntax error : missing ';' before identifier 'm_wsVersion'
GameInfo.h(15): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
GameInfo.h(15): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
已解决的代码:
// removed the comments
#include "stdafx.h"
#include <string.h>
class GameInfo {
public:
UINT m_uiGameId;
wstring m_wsVersion; // Line 15
UINT m_uiCheckSum;
wstring m_wsFilePath; // Same error report as on line 15
public:
static BOOL createFromFile(wstring path, GameInfo &target); // error "error C2061: syntax error : identifier 'wstring'" thrown
};
我使用Visual Studio 2010并且在IDE本身一切正常,没有语法错误或类似的东西。正如我所说,我没有碰到代码,标题似乎很好。
有没有人知道这个错误呢?
答案 0 :(得分:3)
尝试使用字符串标头,并限定命名空间:
#include <string>
class GameInfo {
....
std::wstring m_wsVersion;
};
答案 1 :(得分:2)
#include <string>
是C ++中用于字符串类的正确标准,并使用std::wstring
。
我强烈建议您在其中一个标题中使用using namespace std;
,因为您会强制任何人使用标头将std内容拉入全局命名空间。