大侠帮忙:如何实现将void*类型的数据转换为CString类型?顶者有分 系统执行时,调用扫描仪,通过API返回一个void*的指向文件影像的指针类型,我想问的是如何将此void* 类型转换为CString类型?如果不可以,那如何将BYTE*类型转换为CString类型呢?大家帮帮我,这个问题折腾我几天了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 extern BYTE *a;CString str(a); 如果你的void*的确指向字符串,可以强制转换void* lpvoid;CString string((LPCTSTR) lpvoid); "void*的指向文件影像的指针类型" ?void* 指向的是图像? 那可不能直接转成CString, 涉及到位图处理,字符识别的问题. 同意楼上。但是楼主注意前提啊,呵呵:你的void*的确指向字符 CString str;void *p;str.Format("%s",(char*)p); CString ss; BYTE bb[10]; ss.Format("%s",(char*)bb); 强制转换成char的数组 然后format不管他是不是字符串 不过很大程度是乱码 转化成char * 可能比较好 如果我void*指向的是一个图像,那么我应该把它转换成什么类型的数据,封装成COM,作为接口的返回值,供C#程序调用呢? 楼主是不是想要文字识别,OCR啊 void *转CStringvoid *a;b = (char *)a; 楼主大概是想把void*指向的内存区里的东东, 传到其他调用进程里吧.不管是字串,还是图形数据.? jyc_nj(老蔣) :还是你了解我的意图啊,感激涕零在void*里指向的是内存区里的文件影像,我想在COM封装的接口中将此影像传给c#程序供调用,现在的问题是我不知道该把COM中的void*类型封装成什么返回类型,COM是用Visual C++开发的 把文件影像封装成CString类型是不好的选择,因为CString事实上仍只是封装了以'\0'结束的字符串。没办法的话,楼主不妨自己建一个类似CString的类,封装BYTE型的动态数组,并注意有成员标识该数组的大小——根据需要,这个类可以很简单,但需要重载其=操作符并实现拷贝构造函数。 用VARIANT传递,任何语言都可以使用 bluwindhrt(蓝风) :有例子吗?或者简单地说明一下如何实现?haizhiyu(海之鱼) :如何用VARIANT转换呢?有没有相应的例子吗? 记起来了,有现成的类可以用呢:CByteArray,去看看MSDN吧! 你的COM是在同一进程中使用么?觉得同一进程中的话, 直接传地址进去,虽不规范但好象也不会错.不同进程就麻烦了.看有没有人能指点一下. CString str;void *p;str.Format("%s",(char*)p); VFW 两帧图像相减(求助!!) vc2008的调色板在哪 如何快速向一组EDIT控件输出数据 甘特图控件 在线程函数中处理遇到的问题,请看看! #ifndef ???还有好多,什么意思呢? test 关于菜单问题,请各位高手指教。在线等待 谁在看核心编程第五版,问个DLL问题 哪些办法可以提高socket的传输效率? 如何使得子窗口不随父窗口一起最小化??? 如何控制 树控件 的图片宽度?
CString str(a);
CString string((LPCTSTR) lpvoid);
void* 指向的是图像? 那可不能直接转成CString, 涉及到位图处理,字符识别的问题.
但是楼主注意前提啊,呵呵:你的void*的确指向字符
void *p;
str.Format("%s",(char*)p);
BYTE bb[10];
ss.Format("%s",(char*)bb);
void *a;
b = (char *)a;
不管是字串,还是图形数据.?
还是你了解我的意图啊,感激涕零在void*里指向的是内存区里的文件影像,我想在COM封装的接口中将此影像传给c#程序供调用,现在的问题是我不知道该把COM中的void*类型封装成什么返回类型,COM是用Visual C++开发的
如何用VARIANT转换呢?有没有相应的例子吗?
觉得同一进程中的话, 直接传地址进去,虽不规范但好象也不会错.
不同进程就麻烦了.看有没有人能指点一下.
void *p;
str.Format("%s",(char*)p);