• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > WideCharToMultiByte问题

WideCharToMultiByte问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了widechartomultibyte,问题儿童都来自异世界,保利楼盘曝质量问题,三严三实问题清单,不严不实问题清单等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: WideCharToMultiByte问题
描述:

通过WideCharToMultiByte函数将接收到的数据转换后存入文件,但数据中包含0x00,于是转换时被截断了,怎么办?


解决方案1:

我想你肯定没有转好吧,下面的代码你可以参考,取得数据后,利用CFile类就很方便解决。
自己试试看!
UINT GetObjectName(IAccessible* pacc, VARIANT* pvarChild, LPTSTR lpszName, UINT cchName)
{
    HRESULT hr;
    BSTR bstrName;
    *lpszName = 0;
    bstrName = NULL;
    hr = ....//省略
    
    if (SUCCEEDED(hr) && bstrName)
    {
        WideCharToMultiByte(CP_ACP, 0, bstrName, -1, lpszName, cchName, NULL, NULL);
        SysFreeString(bstrName);
    }
else
{
lstrcpy(lpszName,"NoName");
SysFreeString(bstrName);
}
    return(lstrlen(lpszName));
}

解决方案2:

两个函数! 第一个是将Unicode变成ASCII 第二个是将ASCII 变成
Unicode
你可以将Unicode变成ASCII后进行操作,然后再ASCII 变成Unicode保存
inline LPTSTR B2A(BSTR lp)
{
int nLen=(lstrlenW(lp)+1)<<1;
LPTSTR str=new char[nLen];
WideCharToMultiByte(CP_ACP, 0, lp, -1, str, nLen, NULL, NULL);
return str;
}
inline BSTR A2B(LPCSTR lp)
{
int nLen = lstrlen(lp)>>1-1;
BSTR str = ::SysAllocStringLen(NULL, nLen);
MultiByteToWideChar(CP_ACP, 0, lp, -1, str, nLen);
return str;
}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • WideCharToMultiByte问题

相关文章

  • 2017-06-05 进程通信问题,急!!
  • 2017-06-05 急!ie无法下载含有64位程序的cab包,64位程序不能打进cab包里面吗
  • 2017-06-05 应该是个很简单的问题,不过搜了半天没有相关的答案,>>关于主线程等待子线程<<
  • 2017-06-04 现在有多少人用MFC作com开发?我看了一下源码,总是接口映射表之类的东东,atl是不是用的多些?是不是干脆不看mfc直接看atl了,多谢!
  • 2017-06-05 我把控件中的数据用format()函数转化成CString类型的数据0x01,可是我要怎么把它赋给byte类型的变量呢
  • 2017-06-05 请教高手一个关于进程的问题!
  • 2017-06-05 怎么用VC检测另一个程序Bexe是否已经运行?
  • 2017-06-05 谁能告诉我,为什么导出c++类,并且用到mfc对象(可恶的CString的dll必须是extensiondll
  • 2017-06-04 MSMQ问题
  • 2017-06-05 如何调用dll中的类和类的成员函数?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 算法问题:如何快速的使有序数组变得随机无序
    • 300分求对话框的多线程问题,在线等待,17点前结贴
    • 如何取得ole剪贴板中的数据对象中的数据?
    • VC6如何获取IHTMLStyle3接口?
    • 我这有个VC程序,需要把这个程序打包,可以让用户安装,请问,容易吗?
    • 各位大俠,請教dsoframer刪除文件問題?
    • 请教怎么判断一个进程异常
    • 如何注册AX文件?
    • 在2000系统下如何用钩子给自己的程序定义热键?
    • 如何调用我自己写的dll

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有