#include "stdafx.h"
#include "atlbase.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
OLECHAR temp[5];
temp[0]='A';
temp[1]=0;
temp[2]='D';
temp[3]='E';
temp[4]='F'; BSTR bstrText = SysAllocStringLen(temp, 5); int a = SysStringLen(bstrText)+1; char *ansistr = new char[a]; memset(ansistr,0,a); ::WideCharToMultiByte(CP_ACP,
0,
bstrText,
-1,
ansistr,
a,
NULL,
NULL); for(int i=0;i<a;i++)
printf("%.2lx ",ansistr[i]); printf("\n"); SysFreeString(bstrText); return 0;
}显示结果是
41 00 00 00 00 00
而不是
41 00 44 45 46 00
要怎么做才能得到后面的结果?
#include "atlbase.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
OLECHAR temp[5];
temp[0]='A';
temp[1]=0;
temp[2]='D';
temp[3]='E';
temp[4]='F'; BSTR bstrText = SysAllocStringLen(temp, 5); int a = SysStringLen(bstrText)+1; char *ansistr = new char[a]; memset(ansistr,0,a); ::WideCharToMultiByte(CP_ACP,
0,
bstrText,
-1,
ansistr,
a,
NULL,
NULL); for(int i=0;i<a;i++)
printf("%.2lx ",ansistr[i]); printf("\n"); SysFreeString(bstrText); return 0;
}显示结果是
41 00 00 00 00 00
而不是
41 00 44 45 46 00
要怎么做才能得到后面的结果?
解决方案 »
- 怎样由CObject派生一个描述重绘区的类
- 模式对话框的PropertySheet上控件重叠及Wizard按钮有时Crash问题
- no matching symbolic information found.解决方法.急!在线等!!!!!!
- 显示超链接文本内容
- 我是菜鸟.怎样将动态创建的一个视图关联到动态创建的一个CFrameWnd呢?
- 送分:关于CEdit(先来先得,问题解决马上结算)
- 一个关于使用IActiveDesktop的问题
- 鼠标焦点的失而复得
- 如何用文件索引读取大文件
- 我问了6个问题,都没有满意的答案,问个简单的八
- 安装程序的桌面图标问题?
- 求助:MFC 应用程序,怎么得到窗口句柄,谢谢!
0,
bstrText,
-1, //改为a,-1表示要自动计算长度,此处的计算是针对普通字符串(以null结尾),而bstr例外,中间可以包含0,所以要指定长度,该长度可用SysStringLen获得
ansistr,
a,
NULL,
NULL);