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 に答える