【问题标题】:Can't use MFC CObject class in VS 2017 application无法在 VS 2017 应用程序中使用 MFC CObject 类
【发布时间】:2019-09-30 13:33:44
【问题描述】:

我需要使用MFC序列化机制来序列化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 上遇到错误:不是类或结构名称。

我尝试按照以下评论中的说明制作 MFC 控制台应用程序:https://stackoverflow.com/a/50320168/6543699。现在我遇到了很多错误(未找到标识符或未声明标识符)。错误的文本是俄文的,所以我不会在这里复制它们。看起来是这样的:

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

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

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

【问题讨论】:

  • MFC 是一个非常大的库,你必须在创建项目时包含这些文件才能使用,我记得有一个选项是预编译头文件。你应该选择这个选项。

标签: c++ visual-studio-2017 mfc


【解决方案1】:

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

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

然后您将需要与 MFC 动态库链接。

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

选择:在共享 DLL 中使用 MFC

现在应该使用CObject 编译。

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

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多