无法在 VS 2017 应用程序中使用 MFC CObject class

Can't use MFC CObject class in VS 2017 application

我需要使用 MFC 序列化机制来序列化 objects of class Product:

class Product : public CObject
{
protected:
    string name; 
    int expiring;
    double price;
public:
    Product();
    ~Product();

    virtual void input_data();
    virtual void print_data();
};

这是简单的 Windows 控制台应用程序。我在 CObject 上遇到错误:不是 class 或结构名称。

我尝试按照此评论中的说明制作 MFC 控制台应用程序:。现在我遇到了很多错误(未找到标识符或未声明标识符)。错误文本是俄语的,所以我不在这里复制它们。这是它的样子:

我对 MFC 的使用一无所知,也找不到描述清楚的指南。我的问题是:

1) 是否可以在控制台应用程序中使用 CObject (non-MFC) 以及如何使用?

2) 如果没有,我应该怎么做才能使用MFC序列化?可能包括一些 headers 或安装时缺少某些组件?

您只需通过几个步骤调整控制台应用程序即可使用 MFC。首先是包含 afx.h,例如:

#include <iostream>
#include <afx.h>

然后你会想 link 使用 MFC 动态库。

项目属性 > 配置属性 > 高级 > 使用 MFC

Select: 在共享 DLL 中使用 MFC

现在应该使用 CObject 编译。

我的笔记,我不会用MFC序列化,至少会用Boost Serialization我早就放弃使用任何序列化了,因为经常需要维护版本控制。我发现它是个噩梦。除非您发现您的对象结构将保持相当静态,否则我建议使用 XML 来为您的对象建立数据库。开始需要做更多的工作,但通常情况下,您在进行更改时无需担心版本控制。