0

我有一个基于 MFC 的旧 C++ 项目,我正在尝试在 Linux(Centos 6.2)上的 eclipse 中使用 g++ 进行编译。我从头文件中收到以下错误:

RawData.h:54: error: expected template-name before ‘<’ token
RawData.h:54: error: expected ‘{’ before ‘<’ token
RawData.h:54: error: expected unqualified-id before ‘<’ token

这是头文件中存在问题的部分(从第 54 行开始):

class CRawDayData: public CArray<CRawQHData*,CRawQHData*>
{
public:
    CRawDayData();
    virtual ~CRawDayData();

public:
    tm m_tmDate;

};

我认为这个问题与 CArray 有关,因为我在 Linux 上并且没有使用 MFC 的 afx 东西。有什么想法吗?

4

2 回答 2

2

如果这是你得到的唯一错误,我建议用它的 STL 等效 std::vector 替换 CArray。如果 MFC 或 windows API 被广泛使用,最好尝试针对 Winelib 编译它。

参考:在 Linux 上运行 MFC 程序

使用 STL,你可以这样写:

#include<vector>

class CRawDayData: public vector<CRawQHData*>
{
public:
    CRawDayData();
    virtual ~CRawDayData();

public:
    tm m_tmDate;

};
于 2012-07-05T04:06:16.517 回答
1

所有 MFC 的东西都只是 windows,所以它们在 Linux 上不可用。您必须转换为使用一些跨平台或特定于 linux 的库,例如 STL、wxWidgets 等。

于 2012-07-05T03:29:01.513 回答