| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10317 人关注过本帖
标题:求CString转const char *的有效办法
取消只看楼主 加入收藏
theblur
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-29
收藏
 问题点数:0 回复次数:2 
求CString转const char *的有效办法
我在学习OpenCV和MFC的编程,已经正确安装了OpenCV和VS2005。一个简单的任务是用对话窗打开一个JPG或BMP文件,有关按钮“打开”功能的OnOpen函数如下:
----------------------------
void CcvisionDlg::OnOpen()
{
CFileDialog dlg(TRUE, _T("*.bmp"), _T(""),OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,_T("Image Files (*.bmp; *.jpg) |*.bmp;*.jpg|AVI Files (*.avi) |*.avi|All Files (*.*)|*.*||")); // file types to open

LPCWSTR title= {_T("Open Image")}; //name of button

dlg.m_ofn.lpstrTitle = title;

if (dlg.DoModal() == IDOK) {

CString path= dlg.GetPathName(); // contain the selected filename

const size_t newsize = 100;
char str [newsize];
strcpy_s(str, path); //convert: CString -> const char*

ImageProcessor ip (str); // load, create and display
}

}
----------------------------------------------
问题的症状是图片窗口已经打开,但是没有图片显示,显然选择的图片地址没有被正确地传递到加载图片的函数。GetPathName()是MFC函数,返回选中的图片地址,是CString格式;然后将这个地址传递到ImageProcessor ip(),后者是OpenCV的ImageProcessor类的对象,该类的作用是加载、显示选中的图象,但是要求的参数(也就是图片地址)是const char *,我试图转变字符串类型(就是从变量path到str),但报错如下:
-----------------------------------------------
error C2665: 'strcpy_s' : none of the 2 overloads could convert all the argument types
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(72): could be 'errno_t strcpy_s<100>(char (&)[100],const char *)'
while trying to match the argument list '(char [100], CString)'
----------------------------------------------
这个转型方法是微软提供的:msdn2.microsoft.com/en-us/library/ms235631
其他方法我也试过,包括强转,都不管用。请帮忙看看怎么回事?
搜索更多相关主题的帖子: CString char const 办法 
2006-08-30 09:47
theblur
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-29
收藏
得分:0 
用楼上的方法,报错如下:
-----------------------------------
Error 2 error C2664: 'ImageProcessor::ImageProcessor(const char *,bool)' : cannot convert parameter 1 from 'wchar_t [100]' to 'const char *'
-----------------------------------
2006-08-31 01:07
theblur
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-29
收藏
得分:0 
yeshirow: 彻底服了!你解决了难题!!叫你一声大姐!!!图片出来了,吼吼~~

但是我彻底被搞混了,还得仔细研究一下,这些字符串的结构到底是怎么样的……

还是感谢 ;)
2006-09-01 07:26
快速回复:求CString转const char *的有效办法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012114 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved