我正在开发一个需要运行多任务的程序,以便可以运行计时器。
这是包含文件(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时,它以红色突出显示,并且得到:

最佳答案

如果类声明(头文件)中有DECLARE_DYNAMIC(MyClass),则定义文件中需要IMPLEMENT_DYNAMIC(MyClass, BaseClass)
另外,如果您实际上需要IMPLEMENT_DYNCREATE(),那么在类定义中应该包含DECLARE_DYNCREATE()
有关差异的讨论,请参见此处:Why should i use DECLARE_DYNAMIC instead of DECLARE_DYNCREATE?

关于c++ - 带有IMPLEMENT_DYNCREATE的Microsoft Visual Studio C++ 2019编译器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64076465/

10-15 05:49