#ошибка: целевая архитектура не найдена

Когда я запускаю свою программу, она говорит, что мой проект устарел "Имя моего проекта - Отладка Win32" и спрашивает, хочу ли я его создать. Я получаю ошибку в заголовке. Я не мог понять, в чем проблема, глядя на другие примеры с этими ошибками, потому что это показывает, что строка ошибки находится в заголовочном файле, который я включил.

Мой код:

#include "windows.h"
#include "iostream"
#include "stdafx.h"
#include "processthreadsapi.h"
#include "WinBase.h"
#include <array>

#using <System.dll>

using namespace std;
using namespace System;
using namespace System::Diagnostics;


int main()
{
    int pid = Process::GetProcessesByName("Assault Cube")[0]->Id;
    HANDLE ACHandle = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
    if (ACHandle != 0)
    {
        cout << "Process found";
    }

    else
    {
        cout << "Process wasnt found";
    }

    return 0;
}

И строка в winnt.h, которая вызывает ошибку:

#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif !defined(RC_INVOKED)
#error "No Target Architecture" //Here I get the error
#endif

person Celmos    schedule 14.08.2018    source источник
comment
это зависит от того, какой компилятор и версию SDK вы используете. обычно целевая архитектура автоматически определяется в Windows.h на основе предопределенных макросов компилятора   -  person RbMm    schedule 14.08.2018
comment
Все, что включено выше stdafx.h, игнорируется компилятором. Переместите #include "stdafx.h" вверх, чтобы включить windows.h и должно произойти волшебство. Вернемся с дубликатом через минуту или две.   -  person user4581301    schedule 14.08.2018
comment
Я пробовал это, но теперь выскакивает 6 других ошибок   -  person Celmos    schedule 14.08.2018
comment
что внутри stdafx.h? в любом случае переместите #include "windows.h" в stdafh.h. не нужен #include "WinBase.h" (он автоматически включается через windows.h`)   -  person RbMm    schedule 14.08.2018
comment
Что происходит. Ошибки склонны скрывать одна другую. В старые времена исправление одной синтаксической ошибки, обычно отсутствующей ; вывалил бы на вас еще сотню сообщений об ошибках. Позвольте мне запустить проект clr и посмотреть, смогу ли я помочь разобраться с остальными.   -  person user4581301    schedule 14.08.2018
comment
Я очень новичок в С++, я раньше работал с С#. В stdafx.h есть только #include "stdafx.h"   -  person Celmos    schedule 14.08.2018
comment
Не было этих проблем с С#. Управлять ошибками там гораздо проще :D   -  person Celmos    schedule 14.08.2018
comment
Приведенный выше код не выдает ошибок, по крайней мере для меня, после перемещения #include "stdafx.h". Обнаружение #include "stdafx.h" внутри stdafx.h необычно. Вреда не должно причинить, но я бы убрал.   -  person user4581301    schedule 14.08.2018
comment
#include "stdafx.h" в stdafx.cpp - я спрашиваю, что в stdafx.h - не думаю, что в рекурсивном включении себя. в любом случае переместите стандартные заголовки Windows (например, #include <windows.h>) в stdafx.h - иначе просто нет смысла в предварительно скомпилированных заголовках   -  person RbMm    schedule 14.08.2018
comment
C# не имеет предварительно скомпилированных заголовков. C++ — один из самых сложных языков программирования общего назначения, используемых сегодня. Любой, кто говорит вам, что это легко, лжет, глубоко ошибается или злоупотребляет наркотиками.   -  person user4581301    schedule 14.08.2018
comment
Я получил 6 синтаксическую ошибку: неожиданный идентификатор токена, ожидание перехвата в нескольких файлах   -  person Celmos    schedule 14.08.2018
comment
Не могу воспроизвести. Рекомендую задать новый вопрос, поскольку на данный момент этот вопрос завязан красивым бантом.   -  person user4581301    schedule 14.08.2018
comment
О, я ошибся, я открыл stdafx.cpp. В stdafx.h есть три включения #include targetver.h, #include ‹stdio.h› и #include ‹tchar.h›   -  person Celmos    schedule 14.08.2018