(Visual Studio C++)600+ 错误据说是无中生有的

问题描述 投票:0回答:1

我正在使用 Visual Studio 运行一个 wxWidgets 程序,在我进行一些更改并添加 之前一切都运行良好,这突然破坏了构建。即使删除上述行和所有更改后,仍然会有超过 600 个错误,这些错误对我来说没有任何意义,因为它们很可能来自包含。

我尝试创建一个新项目并运行一个基本的 wxWidgets,它没有错误。所以问题一定出在我的代码和/或包含中。

以下是所有文件的包含内容:

MSTFrame.cpp

#include "MSTFrame.h"
#include "ProcessFns.h"
#include <sstream>
#include <Windows.h>
#include <wx/wx.h> 
#include <wx/spinctrl.h>

MainFrame.cpp

#include "MainFrame.h"
#include "ProcessFns.h"
#include "MSTFrame.h"
#include <Psapi.h>
#include "WinBase.h"
#include <Windows.h>
#include <wx/wx.h>

ProcessFns.cpp

#include <string>
#include <Windows.h>

头文件没有包含。

以下列出了一些错误:

'Blink': unknown override specifier

'Count': unknown override specifier

Error   C2182 '__addgsqword': this use of 'void' is not valid   MemoTools C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\winnt.h

Error   C2182   '__addgsbyte': this use of 'void' is not valid  MemoTools   C:\Program Files (x86)\WindowsKits\10\Include\10.0.22621.0\um\winnt.h

Error   C2039   'wstring': is not a member of 'std' 
Error   C3646   'WINAPI': unknown override specifier
        
Error   C3646   'WorkingSetInfo': unknown override specifier    MemoTools   C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\Psapi.h

Error   C3646   'VirtualAddress': unknown override specifier    MemoTools   C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\Psapi.h  437 

输出约10行:

 1>App.cpp error C2504:  'wxApp': base class undefined
1>(compiling source file 'App.cpp')

1>MainFrame.h(3,29): error C2504: 'wxFrame': base class undefined
1>(compiling source file 'App.cpp')

1>MainFrame.h(7,14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>(compiling source file 'App.cpp')

1>MainFrame.h(7,29): error C2143: syntax error: missing ',' before '&'
1>(compiling source file 'App.cpp')

1>MainFrame.h(8,25): error C2061: syntax error: identifier 'wxArrayString'
1>(compiling source file 'App.cpp')

任何帮助将不胜感激。

c++ build wxwidgets
1个回答
0
投票

您混淆了 IntelliSense 错误和构建错误,它们是完全不同的。构建错误的原因非常明显:您的

App.cpp
不包含
wx/app.h
,因此
wxApp
未在其中定义,并且您的
MainFrame.h
不包含
wx/frame.h
,因此
wxFrame
不是在那里定义的。要解决这些错误,您只需包含缺少的标头即可。

IntelliSense 错误也可能是由于此原因或其他原因造成的,但无论如何,您需要先构建代码,然后再关心 IntelliSense。

© www.soinside.com 2019 - 2024. All rights reserved.