vc2008打开中文目录下的文件问题

RJLIU 2009-09-23 08:23:54
我用vc2008写的一个画图板程序,打开英文目录下的文件没问题,打开中文目录下的文件确一直报错,有谁知道是什么原因哈?
...全文
117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
RJLIU 2009-09-24
  • 打赏
  • 举报
回复
先用一个CString变量存储了文件地址,然后用opencv下的一个函数IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );打开这个文件。前面一直是CString向const char*转换报错,将工程属性unicode改为多字符集后就出现了打的开英文目录文件打不开中文目录文件的问题。
fandh 2009-09-24
  • 打赏
  • 举报
回复
UNICODE的原因!
这样好了,你直接将CString 转化成char *就行了!
除了5楼说的方法,还有CString::GetBuffer(),比如:CString str;str.GetBuffer(str.GetLength());
webing520 2009-09-24
  • 打赏
  • 举报
回复
要把CString转成char *,用操作符(LPCSTR)CString就可以了
webing520 2009-09-24
  • 打赏
  • 举报
回复
那你就不要改工程属性咯


把CString类型变量转换成const char*不就得了。。。

VC2008就是类型转换的比较麻烦一点。。。
贪玩的老鼠 2009-09-24
  • 打赏
  • 举报
回复
将工程属性改回原来的.
这样改就行了
CString sPath;
char filename[MAX_PATH]={0};
strcpy(filename,sPath);
IplImage* pimg=cvLoadImage(filename);
RJLIU 2009-09-24
  • 打赏
  • 举报
回复
看样子应该是vc2008的问题了,换2005后啥问题都没,同样的解决unicode的方法2005下直接通过,2008下就是各种错误
RJLIU 2009-09-24
  • 打赏
  • 举报
回复
采用wsprintfA(str, "%S ",(LPCTSTR)filename);的方法能够转换成功,找到文件地址了,可是显示图像的时候却是黑屏
WaistCoat15 2009-09-23
  • 打赏
  • 举报
回复
应该是UNICODE导致的,你用什么那个函数打开文件?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧