0
我不太清楚这是否应该被认为是一个C++的问题或wxWidgets的依赖关系:C++,包括使用的wxWidgets和OpenGL
我正在一个相当简单的wxWidgets的接口上,将允许用户绘制三角形。因此,我有一个画布(OpenGLCanvas类)和一个wxWindow(CMainFrame类),问题是我希望我的画布有一个窗口的实例,反之亦然。错误的来源是当编译器到达OpenGLCanvas中我的CMainFrame实例所在的时候,它(CMainFrame)还没有被定义,如果我在这里改变#include的顺序,就会发生同样的事情。我的代码:
OpenGLCanvas.cpp:
#include "mainframe.h"
#include "openglcanvas.h"
...
OpenGLCanvas::OpenGLCanvas(wxWindow *parent, wxWindowID id,const wxPoint& pos, const wxSize& size,long style, const wxString& name):
wxGLCanvas(parent, id, pos, size, style, name)
{
frame = (CMainFrame) parent;
}
openGLCanvas.h:
#ifndef __OPENGLCANVAS_H__
#define __OPENGLCANVAS_H__
#include "wx/wx.h"
#include <wx/glcanvas.h>
class OpenGLCanvas: public wxGLCanvas {
public:
CMainFrame* frame;
...
#endif
mainframe.cpp:
#include "openglcanvas.h"
#include "mainframe.h"
...
CMainFrame::CMainFrame(wxMenuBar* menu, const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, -1, title, pos, size)
{
m_menu=menu;
canvas = new OpenGLCanvas((wxWindow*)this,-1, pos , size, 0 , wxT("Canvas"));
}//constructor
...
mainframe.h
#ifndef __MAINFRAME_H__
#define __MAINFRAME_H__
...
class CMainFrame: public wxFrame {
public:
CMainFrame(wxMenuBar* menu,const wxString& title, const wxPoint& pos, const wxSize& size);
我怎样包含这个文件? (我对C++相当陌生,但对C不太熟悉) 对于我的问题的长度,我表示抱歉。任何想法都会有很大的帮助。
谢谢。
非常感谢!经过一些调整,固定它:) – Luisjomen2a