诸位大侠,帮我看一下,为什么一个char*先转成BSTR,再转成char*后,居然会不相等???求求那位大侠行行好,解决后立刻给分! char* G_sEncrypt="?>?W眂";
BSTR pVal = _com_util::ConvertStringToBSTR(G_sEncrypt);
char sTemp[256]={0};
strcpy(sTemp,_T((char *)_bstr_t(pVal)));
if (strcmp(sTemp,G_sEncrypt)==0)
AfxMessageBox("等于");
else
AfxMessageBox("不等于");
BSTR pVal = _com_util::ConvertStringToBSTR(G_sEncrypt);
char sTemp[256]={0};
strcpy(sTemp,_T((char *)_bstr_t(pVal)));
if (strcmp(sTemp,G_sEncrypt)==0)
AfxMessageBox("等于");
else
AfxMessageBox("不等于");
解决方案 »
- VC中怎么设置Edit控件输入的数是实数,在线等
- 问一个1800分的问题,关于动态创建控件属性初始化。
- 将读取到的匿名管道的数据显示在EDIT BOX的时候数据怎么截断了???
- 关于数组初始化的问题
- 有关TCP分片的问题,不知理解是不是有问题
- 谁第一个回答好, 200 分全给他一个人.
- 急!关于文件读取数据操作!
- 实在忍无可忍,对【珊瑚虫和飘云】 实践,说两句!
- ftp文件删除问题,不是高手不要进来!!!
- 怎么禁止拖动
- 我用createwindow新建了一个button窗口,并调用DrawIcon想在窗口中放一幅图,drawIcon返回成功的标志,但是窗口并没有这幅图,为什么?
- 窗口显示时有没有一个消息通知所有程序?
VC6.0可能有不同
试试
char* G_sEncrypt="?>?W眂";
BSTR pVal = _com_util::ConvertStringToBSTR(G_sEncrypt);
char sTemp[256]={0};
strcpy(sTemp,(LPCSTR)_bstr_t(pVal));
if (strcmp(sTemp,G_sEncrypt)==0)
printf("等于\n");
else
printf("不等于\n");
可能是BSTR对标准char字符加了些东西。
char* G_sEncrypt="?>?W眂";
改为
char* G_sEncrypt=_T("?>?W眂");
试试
char* G_sEncrypt="?>?W眂";
BSTR pVal = SysAllocString(T2OLE(G_sEncrypt));
char sTemp[256]={0};
strcpy(sTemp,OLE2T(pVal));
if (strcmp(sTemp,G_sEncrypt)==0)
printf("等于\n");
else
printf("不等于\n");