我正在尝试从当前类的不同类中引用cstring mycustompath
。
CString test = CBar::mycustompath + _T("executables\\IECapt");
但我得到了这个错误:
错误C2597:非法引用非静态成员'CBar :: mycustompath'c:\ work \ b.cpp 14
如何解决这个问题?
答案 0 :(得分:6)
这意味着mycustompath是特定CBar对象的属性,而不是CBar类的属性。您需要实例化一个CBar类
CBar* myBar = new CBar();
CString test = myBar->mycustompath + _T("executables\\IECapt");
或引用你已经拥有的,或者,如果mycustompath没有因CBar对象而异,你可以在类中将其更改为static:
class CBar
{
public:
static CString mycustompath;
}
答案 1 :(得分:3)
这表明CBar::mycustompath
不是CBar
的静态成员变量。您必须创建CBar
的实例才能访问它:
CBar bar;
CString test = bar.mycustompath + _T("executables\\IECapt");