在c ++中编译wstring的问题

时间:2012-06-08 10:56:32

标签: c++ visual-studio-2010 wstring

我需要为基于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本身一切正常,没有语法错误或类似的东西。正如我所说,我没有碰到代码,标题似乎很好。

有没有人知道这个错误呢?

2 个答案:

答案 0 :(得分:3)

尝试使用字符串标头,并限定命名空间:

#include <string>

class GameInfo {
   ....  
   std::wstring m_wsVersion;
};

答案 1 :(得分:2)

#include <string>是C ++中用于字符串类的正确标准,并使用std::wstring

我强烈建议您在其中一个标题中使用using namespace std;,因为您会强制任何人使用标头将std内容拉入全局命名空间。