MFC“error C2248: "CObject::CObject": 无法访问 private 成员(在"CObject"类中声明”错误,什么原因?
//鼠标点击List某行选取某列n的值CStringCInsertRoadInfoDlg::GetListColumnData(CListCtrllistCtrl,int...
//鼠标点击List某行选取某列n的值
CString CInsertRoadInfoDlg::GetListColumnData(CListCtrl listCtrl,int n)
{
CString strText;
POSITION p = listCtrl.GetFirstSelectedItemPosition();
int nSelected = listCtrl.GetNextSelectedItem(p); //获取选中行
strText = listCtrl.GetItemText(nSelected,n);
return strText;
} 展开
CString CInsertRoadInfoDlg::GetListColumnData(CListCtrl listCtrl,int n)
{
CString strText;
POSITION p = listCtrl.GetFirstSelectedItemPosition();
int nSelected = listCtrl.GetNextSelectedItem(p); //获取选中行
strText = listCtrl.GetItemText(nSelected,n);
return strText;
} 展开
2个回答
展开全部
在对话框里添加一个进度条控件,作为参数传递给Excel类的函数,编译时出错:
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
网上搜到的原因是:MFC控件都继承自CObject类,这种类的对象不能被拷贝。作为函数
参数传递时,实际上是把控件变量拷贝了一份传递给函数了,导致上面的编译错误。
解决办法:在生成控件变量以后,再手动添加一个控件指针变量,指针等于控件变量的
引用,然后把指针作为函数参数,就没有问题了。
1. 变量传递给指针
CProgressCtrl m_pcTab4;
CProgressCtrl *pm_pcTab4 = &m_pcTab4;
2.指针作为函数的参数
CExcelAccess ea;
ea.OrCADBOMAddInfo(pm_pcTab4);/
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
网上搜到的原因是:MFC控件都继承自CObject类,这种类的对象不能被拷贝。作为函数
参数传递时,实际上是把控件变量拷贝了一份传递给函数了,导致上面的编译错误。
解决办法:在生成控件变量以后,再手动添加一个控件指针变量,指针等于控件变量的
引用,然后把指针作为函数参数,就没有问题了。
1. 变量传递给指针
CProgressCtrl m_pcTab4;
CProgressCtrl *pm_pcTab4 = &m_pcTab4;
2.指针作为函数的参数
CExcelAccess ea;
ea.OrCADBOMAddInfo(pm_pcTab4);/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询