“错误:非静态成员引用必须与特定对象相关"是什么意思?意思是?

2021-12-31 00:00:00 dll compiler-errors c++ member-functions
int CPMSifDlg::EncodeAndSend(char *firstName, char *lastName, char *roomNumber, char *userId, char *userFirstName, char *userLastName)
{
    ...

    return 1;
}

extern "C"
{
    __declspec(dllexport) int start(char *firstName, char *lastName, char *roomNumber, char *userId, char *userFirstName, char *userLastName)
    {
        return CPMSifDlg::EncodeAndSend(firstName, lastName, roomNumber, userId, userFirstName, userLastName);
    }
}

在线 return CPMSifDlg::EncodeAndSend 我有一个错误:错误:非静态成员引用必须与特定对象相关.

On line return CPMSifDlg::EncodeAndSend I have an error : Error : a nonstatic member reference must be relative to a specific object.

什么意思?

推荐答案

EncodeAndSend 不是静态函数,这意味着它可以在 CPMSifDlg.你不能这样写:

EncodeAndSend is not a static function, which means it can be called on an instance of the class CPMSifDlg. You cannot write this:

 CPMSifDlg::EncodeAndSend(/*...*/);  //wrong - EncodeAndSend is not static

它应该被称为:

 CPMSifDlg dlg; //create instance, assuming it has default constructor!
 dlg.EncodeAndSend(/*...*/);   //correct 

相关文章