我正在使用 Visual Studio 运行一个 wxWidgets 程序,在我进行一些更改并添加
我尝试创建一个新项目并运行一个基本的 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')
任何帮助将不胜感激。
您混淆了 IntelliSense 错误和构建错误,它们是完全不同的。构建错误的原因非常明显:您的
App.cpp
不包含 wx/app.h
,因此 wxApp
未在其中定义,并且您的 MainFrame.h
不包含 wx/frame.h
,因此 wxFrame
不是在那里定义的。要解决这些错误,您只需包含缺少的标头即可。
IntelliSense 错误也可能是由于此原因或其他原因造成的,但无论如何,您需要先构建代码,然后再关心 IntelliSense。