2

Zinc ベースの Flash アプリケーション用に .dll をリファクタリングする必要があります。

マスターからブランチにクラスをコピーして貼り付けた後、奇妙なコンパイル エラーが発生します。

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 自体はすべて問題なく、構文エラーなどもありません。そして、コードには触れていないと言ったように、ヘッダーは問題ないようです。

このエラーについて何か手がかりはありますか?

4

2 に答える 2

5

文字列ヘッダーを使用して、名前空間を修飾してみてください。

#include <string>

class GameInfo {
   ....  
   std::wstring m_wsVersion;
};
于 2012-06-08T10:58:34.013 に答える
2

#include <string>は、文字列クラスと使用のための C++ の正しい標準インクルードstd::wstringです。

ヘッダーの内側を使用することを強くお勧めしusing namespace std;ます。これは、ヘッダーを使用しているすべての人に std のものをグローバル名前空間に取り込むように強制するためです。

于 2012-06-08T10:58:16.750 に答える