Не могу использовать класс MFC CObject в приложении VS 2017 - PullRequest
1 голос
/ 30 сентября 2019

Мне нужно использовать механизм сериализации 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. Теперь я получил много ошибок (идентификатор ненайден или идентификатор не объявлен). Текст ошибок на русском языке, поэтому я не копирую их здесь. Вот как это выглядит: Errors

Я ничего не знаю об использовании MFC и не могу найти руководство, где оно четко описано. Мои вопросы:

1) Можно ли использовать CObject в консольном приложении (не-MFC) и как?

2) Если нет, что я должен сделать, чтобы иметь возможность использовать MFCserialazation? Может быть, некоторые заголовки или компоненты просто отсутствовали при установке?

1 Ответ

2 голосов
/ 30 сентября 2019

Вы можете просто настроить консольное приложение за пару шагов, чтобы использовать MFC. Во-первых, необходимо включить afx.h, например:

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

Затем вы захотите установить связь с динамическими библиотеками MFC.

Свойства проекта> Свойства конфигурации> Дополнительно> Использовать MFC

Выберите: Использовать MFC в общей библиотеке DLL

Теперь он должен компилироваться с CObject.

Моя заметка , я бы не использовал сериализацию MFC, по крайней мере, Boost Serialization Я давно отказался от использования любой сериализации из-за постоянной необходимости поддерживать версионность. Я нашел это ночная кобыла. Если вы не видите, что структура вашего объекта останется довольно статичной, я бы рекомендовал использовать XML для базы данных ваших объектов. Это немного больше работы, но гораздо чаще вам не нужно беспокоиться о версии, когда вы вносите изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...