error C2664: 'cvLoadImage' : cannot convert parameter 1 from 'CString' to 'const char *'
程序补充如下voidCsobeltestDlg::OnReadPic(){//TODO:在此添加控件通知处理程序代码CStringOpen_Filename;CFileD...
程序补充如下
void CsobeltestDlg::OnReadPic()
{
// TODO: 在此添加控件通知处理程序代码
CString Open_Filename;
CFileDialog fDlg(TRUE,_T("bmp"),_T("*.bmp"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("原始图像(*.bmp)|*.bmp|所有文件(*.*)|*.*||"),NULL);
if (fDlg.DoModal() == TRUE)
{
Open_Filename = fDlg.GetFileName();
if(m_cvImage)
cvReleaseImage(&m_cvImage);
m_cvImage = cvLoadImage(Open_Filename,1);
if (m_cvImage==0)
MessageBox(_T("Reading Failed"));
else
DrawPicToHDC(m_cvImage, IDC_SHOW_WINDOW);
}
}
m_cvImage = cvLoadImage(Open_Filename,1);是这一句出错了,请教大虾如何改,万分感谢!!! 展开
void CsobeltestDlg::OnReadPic()
{
// TODO: 在此添加控件通知处理程序代码
CString Open_Filename;
CFileDialog fDlg(TRUE,_T("bmp"),_T("*.bmp"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("原始图像(*.bmp)|*.bmp|所有文件(*.*)|*.*||"),NULL);
if (fDlg.DoModal() == TRUE)
{
Open_Filename = fDlg.GetFileName();
if(m_cvImage)
cvReleaseImage(&m_cvImage);
m_cvImage = cvLoadImage(Open_Filename,1);
if (m_cvImage==0)
MessageBox(_T("Reading Failed"));
else
DrawPicToHDC(m_cvImage, IDC_SHOW_WINDOW);
}
}
m_cvImage = cvLoadImage(Open_Filename,1);是这一句出错了,请教大虾如何改,万分感谢!!! 展开
4个回答
展开全部
不能够把CString类型转换成char*类型.
你可以调用GetBuffer()函数来获取缓存区指针.
如果你的出错的实参数名是 CString类型的str.
str.GetBuffer()
它的返回值类型是char*
你可以调用GetBuffer()函数来获取缓存区指针.
如果你的出错的实参数名是 CString类型的str.
str.GetBuffer()
它的返回值类型是char*
更多追问追答
追问
你好,能具体点吗,我刚开始学,还不太会用,谢谢了
追答
m_cvImage = cvLoadImage(Open_Filename.GetBuffer(),1);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
项目右键--> 属性 将 character set改为 Use multi-byte character set就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bstr_t strFilename = Open_Filename;
m_cvImage = cvLoadImage((const char* strFilename ),1);
m_cvImage = cvLoadImage((const char* strFilename ),1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询