如何在C ++中将std :: string显示到CEdit中

时间:2016-01-19 07:54:58

标签: c++ mfc cedit

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

MFCApplication1Dlg.h

...

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);

    }
}

...

MFCApplication1Dlg.cpp

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

编译时我有这个错误:

PDF

任何人都可以告诉我这个错误是什么,我怎样才能在CEdit中显示消息?

1 个答案:

答案 0 :(得分:1)

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

CEdit CMFCApplication1Dlg::m_progress;

在标题中,它只是声明,未定义。

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