0

我有一个用 C++ 编写的 MFC 项目,我想在 CEdit 控件中显示一些文本。到目前为止,我试过这个:

MFCApplication1Dlg.h

...

private:
    static CEdit m_progress;
public:
    static void setProgress(std::string message);

...

MFCApplication1Dlg.cpp

...

void CMFCApplication1Dlg::setProgress(std::string message)
{
    m_progress.SetWindowTextW((LPCTSTR)message.c_str());
}

void logMessage(std::string message)
{
    if(logFile.is_open())
    {
        logFile << message;
        logFile.flush();
        CMFCApplication1Dlg::setProgress(message);

    }
}

...

当我编译我有这个错误:

error LNK2001: unresolved external symbol "private: static class CEdit CMFCApplication1Dlg::m_progress" (?m_progress@CMFCApplication1Dlg@@0VCEdit@@A)

谁能告诉我这个错误是怎么回事,我怎么能在那个 CEdit 中显示消息?

4

1 回答 1

1

您必须在 cpp 文件中定义静态成员:

CEdit CMFCApplication1Dlg::m_progress;

在标头中,它只是声明,而不是定义。

另外,我希望SetWindowTextW采用wstring::c_str()参数,而不是string::c_str().

于 2016-01-19T07:59:22.327 回答