У меня есть проект MFC, написанный на C ++, и я хочу отобразить некоторый текст в элементе управления 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?
Вы должны определить статический член в вашем файле cpp:
CEdit CMFCApplication1Dlg::m_progress;
В заголовке он просто объявлен, а не определен.
Также я бы ожидал SetWindowTextW
взять wstring::c_str()
параметр, а не string::c_str()
,
Других решений пока нет …