Visual Studio 2019 имеет ошибки во встроенных библиотеках - PullRequest
0 голосов
/ 18 июня 2020

Первый раз спрашиваю здесь, так что потерпите меня или просто дайте мне знать, нужно ли мне сделать что-то другое.

Я только что установил бесплатную sh версию Visual Studio 2019 и пытаюсь создать очень простое консольное приложение c C ++, которое включает Windows .h и iostream. При попытке сборки я обнаружил более 100 ошибок сборки из библиотек, поставляемых с IDE. Результат сборки показан ниже. Может быть, кто-нибудь поймет, почему библиотеки, поставляемые с VS2019, могут сами по себе вызывать столько ошибок сборки?

Прежде чем вы предложите Google и просматриваете другие вопросы, перечисленные здесь, я искал в обоих местах как а также базу знаний Microsoft и не смогли найти каких-либо значимых результатов. Спасибо!

x32control. cpp:

#include "common.h"

int main ()
{
    return errAndDie ("\nTesting errAndDie.\n\n");
}

common. cpp:

#include <iostream>
#include <winddi.h>


int errAndDie (const char* errorMessage) {
    std::cout << errorMessage;
    return -1;

common.h:

#ifndef COMMON_H
#define COMMON_H

#include <iostream>
#include <Windows.h>

int errAndDie (const char *errorMessage);

#endif

Ошибки:

1>common.cpp
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(90,22): error C3646: 'Data1': unknown override specifier
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(90,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(91,22): error C3646: 'Data2': unknown override specifier
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(91,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(92,22): error C3646: 'Data3': unknown override specifier
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(92,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(93,22): error C3646: 'Data4': unknown override specifier
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(93,22): error C2143: syntax error: missing ',' before '['
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(93,25): error C2143: syntax error: missing ')' before ';'
1>D:\Windows Kits\10\Include\10.0.18362.0\um\winddi.h(93,25): error C2238: unexpected token(s) preceding ';'
1>D:\Windows Kits\10\Include\10.0.18362.0\um\ddrawint.h(32,1): error C2146: syntax error: missing ';' before identifier 'GUID_MiscellaneousCallbacks'
1>D:\Windows Kits\10\Include\10.0.18362.0\um\ddrawint.h(32,122): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>D:\Windows Kits\10\Include\10.0.18362.0\um\ddrawint.h(33,1): error C2146: syntax error: missing ';' before identifier 'GUID_Miscellaneous2Callbacks'
1>D:\Windows Kits\10\Include\10.0.18362.0\um\ddrawint.h(33,124): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>D:\Windows Kits\10\Include\10.0.18362.0\um\ddrawint.h(34,1): error C2146: syntax error: missing ';' before identifier 'GUID_VideoPortCallbacks'
...
1>D:\Windows Kits\10\Include\10.0.18362.0\um\ddraw.h(296,44): error C3646: 'lpDDSZBufferSrc': unknown override specifier
1>D:\Windows Kits\10\Include\10.0.18362.0\um\ddraw.h(296,44): fatal error C1003: error count exceeds 100; stopping compilation
1>httpserver.cpp
1>x32control.cpp
1>Generating Code...
1>Done building project "x32control.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

1 Ответ

0 голосов
/ 18 июня 2020

Я нашел проблему. Включение общего winddi.h. Проблема была в cpp. Я не совсем уверен, как это произошло, поскольку я не помню, чтобы когда-либо печатал это, и я не часто копирую / вставляю. Приношу свои извинения за то, что не заметил этого перед публикацией. Иногда новые контексты позволяют легче увидеть эти вещи.

...