gpt4 book ai didi

c++ - 包括 guard 不工作

转载 作者:搜寻专家 更新时间:2023-10-31 01:18:47 24 4
gpt4 key购买 nike

我的 trackerFrame.h 文件中有如下内容。

它包含在 trackerFrame.cpp 和 main.cpp 中,无论出于何种原因,当我尝试编译所有与 wxWidgets 事件表宏有关的内容时,我从中遇到了多个定义问题。

#ifndef TRACKER_H
#define TRACKER_H

#include <wx/wxprec.h>
#ifndef WX_PRECOMP
# include "wx/wx.h"
#endif


#include <wx/frame.h>
#include <wx/string.h>
#include <wx/menu.h>
#include <iostream>

class mainFrame : public wxFrame {
public:
mainFrame(wxString title);
DECLARE_EVENT_TABLE()
private:
void closeProgram(wxCommandEvent & event);
};


BEGIN_EVENT_TABLE(mainFrame, wxFrame)
EVT_MENU(wxID_EXIT, mainFrame::closeProgram)
END_EVENT_TABLE()

#endif

我有 99.9% 的把握确定我正在正确执行 include 守卫,但我只是不知道发生了什么。

最佳答案

您的包含守卫是正确的。问题很可能出在这里:

BEGIN_EVENT_TABLE(mainFrame, wxFrame)    
EVT_MENU(wxID_EXIT, mainFrame::closeProgram)
END_EVENT_TABLE()

According to the wxWidgets wiki on event tables ,事件表需要定义到一个.cpp文件中。因此,您将拥有一个包含 tracker.h 文件的 tracker.cpp 文件,并将 BEGIN_EVENT_TABLE(mainFrame, wxFrame) ... 映射进入 tracker.cpp 文件。

关于c++ - 包括 guard 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6811209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com