Новый (. NET Core) проект C ++ / CLI имеет проблемы с компиляцией, когда определение и реализация разделены - PullRequest
0 голосов
/ 04 марта 2020

Я создал проект "CLR Empty Project (.Net Core)" с использованием Visual Studio 2019.

Я просто создал новый класс, используя опцию меню «добавить класс», и он сгенерировал этот класс. Я добавил функцию с именем Test в заголовок:


using namespace System;

public ref class Class1 {
    // TODO: Add your methods for this class here.

    void Test();
};

Затем, используя опцию генерации реализации Visual Studio, он создал эту функцию в файле. cpp:

#include "EngineEditorLayer.h"

#include "pch.h"

void Class1::Test() { throw gcnew System::NotImplementedException(); }

При компиляции он дал мне эту ошибку:

error C2653: 'Class1': is not a class or namespace name

Я могу устранить эту ошибку только путем перемещения реализации в заголовочный файл.

Я что-то упустил? Нужно ли изменить настройку, чтобы включить компиляцию cpp? Есть ли ошибка компилятора, которая мешает мне сделать это в настоящее время?

1 Ответ

1 голос
/ 04 марта 2020

Ганс Пассант из комментариев был прав. Сначала нужно включить pch.h.

К сожалению, я так и не получил предупреждение. Это был мой выходной журнал:

1>------ Build started: Project: EngineEditorLayer, Configuration: Debug x64 ------
1>EngineEditorLayer.cpp
1>E:\Other Projects\PixEngine\EngineEditorLayer\EngineEditorLayer.cpp(7,18): error C2653: 'Class1': is not a class or namespace name
1>Done building project "EngineEditorLayer.vcxproj" -- FAILED.
...