| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 706 人关注过本帖
标题:【求肋】有个问题希望大家能帮忙解答一下
只看楼主 加入收藏
bluebabyulee
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-24
收藏
 问题点数:0 回复次数:0 
【求肋】有个问题希望大家能帮忙解答一下
工程中有这样两个类,但老编译不过,类和错误码代码如下:
class Keys                                                        
{
public:
    /** 构造函数 */
    Keys() { Clear(); }
    /** 清空所有的按键信息 */
    void Clear() { ZeroMemory(&m_KeyDown, sizeof(m_KeyDown)); }
    /** 判断某个键是否按下 */
    bool IsPressed(unsigned int key)    { return (key < MAX_KEYS) ? (m_KeyDown[key] == true) : false; }
    /** 设置某个键被按下 */
    void SetPressed(unsigned int key)    { if (key < MAX_KEYS) m_KeyDown[key] = true; }
    /** 设置某个键被释放 */
    void SetReleased(unsigned int key)    { if (key < MAX_KEYS) m_KeyDown[key] = false; }

private:

    static const unsigned int MAX_KEYS=255;
    bool m_KeyDown[MAX_KEYS];                                    /**< 保存256个按键的状态 */
};
class GLApplication                                            
{
public:
    /** 创建一个全局的Create函数,这个函数必须被继承类实现 */
    static GLApplication * Create(const char * class_name);    /**< 创建你自己的子类 */

    /** 虚析构函数 */
    virtual ~GLApplication() {};

protected:
    /** 下面的函数必须被继承类实现,完成基本的OpenGL渲染过程 */
    virtual bool    Init() = 0;                            /**< OpenGL的初始化 */
    virtual void    Uninit() = 0;                            /**< OpenGL的卸载 */
    virtual void    Update(DWORD milliseconds) = 0;                /**< 执行OpenGL程序的更新 */
    virtual void    Draw() = 0;                                    /**< 绘制OpenGL场景 */

    /** 通用的函数 */
    void    ToggleFullscreen();                                    /**< 切换 全屏/窗口模式 */
    void    TerminateApplication();                                /**< 结束程序 */
    void    ResizeDraw(bool enable) { m_ResizeDraw = enable; }    /**< 设置在窗口改变大小的时候,可以绘制 */

    Keys    m_Keys;                                                /**< 按键类 */
    /** 构造函数 */
    GLApplication(const char * class_name);    
    
private:
    /** 程序的主循环 */
    friend int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
    int        Main(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
    /** 消息处理回调函数 */
    friend LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
    LRESULT    Message(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

    static const UINT WM_TOGGLEFULLSCREEN = (WM_USER + 1);        /**< 自定义消息,在切换窗口模式的时候发送 */
                     
    GLWindow    m_Window;                                        /**< Window类 */
    const char* m_ClassName;                                    /**< 程序名 */
    bool        m_IsProgramLooping;                                /**< 程序循环标记,如果为false,则退出程序 */
    bool        m_CreateFullScreen;                             /**< 若为true,则创建全屏模式 */
    bool        m_IsVisible;                                    /**< 窗口是否可见 */
    bool        m_ResizeDraw;                                    /**< 是否在改变大小时,调用了绘制函数 */
    DWORD        m_LastTickCount;                                /**< 上一次计时器的值 */
};
d:\av\msdev98\myprojects\opengl002\glframe.h(55) : error C2258: illegal pure syntax, must be '= 0'
d:\av\msdev98\myprojects\opengl002\glframe.h(55) : error C2252: 'MAX_KEYS' : pure specifier can only be specified for functions
d:\av\msdev98\myprojects\opengl002\glframe.h(56) : error C2065: 'MAX_KEYS' : undeclared identifier
d:\av\msdev98\myprojects\opengl002\glframe.h(56) : error C2057: expected constant expression
d:\av\msdev98\myprojects\opengl002\glframe.h(56) : warning C4200: nonstandard extension used : zero-sized array in struct/union
d:\av\msdev98\myprojects\opengl002\glframe.h(94) : error C2258: illegal pure syntax, must be '= 0'
d:\av\msdev98\myprojects\opengl002\glframe.h(94) : error C2252: 'WM_TOGGLEFULLSCREEN' : pure specifier can only be specified for functions
d:\av\msdev98\myprojects\opengl002\glframe.h(96) : error C2229: class 'GLApplication' has an illegal zero-sized array
d:\av\msdev98\myprojects\opengl002\glframe.cpp(100) : error C2065: 'WM_TOGGLEFULLSCREEN' : undeclared identifier
d:\av\msdev98\myprojects\opengl002\glframe.cpp(189) : error C2051: case expression not constant
Error executing cl.exe.
搜索更多相关主题的帖子: 解答 
2008-11-24 01:07
快速回复:【求肋】有个问题希望大家能帮忙解答一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023441 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved