如何解决Microsft Visual Studio C ++ 2019使用IMPLEMENT_DYNCREATE编译错误
我正在开发一个需要运行多任务的程序,以便可以运行计时器。
以下是包含文件(MyRunTimers.h
):
#pragma once
#include <afxwin.h>
class MyRunTimers :
public CObject
{
int m_nNum;
bool m_bDone = FALSE;
CObject* m_pOwner = NULL;
bool m_bAutoDelete = FALSE;
void MyTimerThread();
public:
DECLARE_DYNAMIC(MyRunTimers)
protected:
MyRunTimers::MyRunTimers();
MyRunTimers::~MyRunTimers();
};
这是cpp文件(MyRunTimers.cpp
):
#include "pch.h"
#include "MyRunTimers.h"
IMPLEMENT_DYNCREATE(MyRunTimers,CObject)
MyRunTimers::MyRunTimers()
{
m_bDone = FALSE;
m_pOwner = NULL;
m_bAutoDelete = FALSE;
}
MyRunTimers::~MyRunTimers()
{
}
当我尝试编译IMPLEMENT_DYNCREATE
时以红色突出显示,并且得到:
`E0135 - class "MyRunTimers" has no member "CreateObject"
解决方法
如果类声明(头文件)中有DECLARE_DYNAMIC(MyClass)
,则定义文件中需要IMPLEMENT_DYNAMIC(MyClass,BaseClass)
。
或者,如果您实际上需要 IMPLEMENT_DYNCREATE()
,则在类定义中应该使用DECLARE_DYNCREATE()
。
有关差异的讨论,请参见此处:Why should i use DECLARE_DYNAMIC instead of DECLARE_DYNCREATE?。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。