none
VS2015调用RUNTIME_CLASS报错C2039 RRS feed

  • 问题

  • VS2015调用RUNTIME_CLASS时出错,源代码如下:

     CCreateContext cc;
     cc.m_pNewViewClass = RUNTIME_CLASS(CMainView);
     CreateView(&cc);

    此程序在VC6.0中运行没有错误,但在VS2015中运行报错。

    error C2039: “classCMainView”: 不是“CMainView”的成员
    error C2065: “classCMainView”: 未声明的标识符


    • 已编辑 Lee4556 2017年2月21日 6:35
    • 已移动 宝宝徐 2017年2月22日 1:38
    2017年2月21日 6:26

全部回复

  • Hi Lee4556,

    感谢在MSDN论坛发帖。

    请提供一下CMainView的定义代码。

    使用RUNTIME_CLASS时,只有使用DECLARE_DYNAMIC,DECLARE_DYNCREATE或DECLARE_SERIAL声明的CObject派生类才会返回指向CRuntimeClass结构的指针。例如:

    class CMainView : public CObject
    {
    	DECLARE_DYNAMIC(CMainView)
    
    	// other declarations
    };

    详细内容请参考以下文档。

    https://msdn.microsoft.com/en-us/library/t91eb9y9.aspx

    希望对你有所帮助。

    Best Regards,
    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已建议为答案 Baron Bi 2017年2月24日 8:38
    2017年2月22日 6:27
  • 你好,我派生的是CListView,用了DECLARE_DYNCREATE(CMainView),但是最后出现无法解析外部符号的错误,用的vs2017,这是什么原因呢?
    2019年4月11日 13:19