• 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 > 为什么从ACTIVEX控件里面返回的中文字符在英文操作系统下是乱码?

为什么从ACTIVEX控件里面返回的中文字符在英文操作系统下是乱码?

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

佚名通过本文主要向大家介绍了activex控件下载xp,activex控件下载,activex控件,activex控件被阻止,activex控件官方下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 为什么从ACTIVEX控件里面返回的中文字符在英文操作系统下是乱码?
描述:

如题:
我用VC7做的一个控件
调用这个控件的函数,会返回一个中文的值给我的HTML页面显示,
在中文操作系统下能够正确显示,可在英文的操作系统下中文就
变成了乱码
当我在控件里面报一个MESSAGEBOX时显示,在英文的操作系统下面
也正确显示中文,可到了HTML页面里就成了乱码
IE的编码我也都做了各种尝试,但均未触发此问题,且直接写到页面
内的中文可以正确显示


解决方案1:

还有一个方法,就是编译unicode版本。unicode版本不需要转换,所以也不会乱码。

解决方案2:

刚才查了一下:MFC中CString的AllocSysString函数是根据系统当前内码来转换的,如果是在英文版,它就根据英文内码转换,所以结果是乱码。你可以试试用下面这段代码取得BSTR。
// return tmp.AllocSysString();
int nLen = MultiByteToWideChar(CP_THREAD_ACP, 0, tmp, tmp.GetLength(), NULL, NULL);
BSTR bstr = ::SysAllocStringLen(NULL, nLen);
MultiByteToWideChar(CP_THREAD_ACP, 0, m_tmp, tmp.GetLength(), bstr, nLen);
return bstr;

解决方案3:

这是控件的interface中的方法吗?你是说哪个参数出错了?
我感觉还是控件里的问题,在不同的语言环境里出错。

解决方案4:

你这个函数的参数全是LPCTSTR,不是BSTR啊。
这种情况多发生在窄字符和BSTR之间转换时指定的转换内码不正确。
你可以把整个程序发给我,或者做简化的例子。
单从这段程序看不出问题。

解决方案5:

你的控件里是不是把char*转换成了BSTR?是怎么转换的?


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

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

  • 讨论一下activex方面的经典书目!
  • 紧急求助:关于ActiveX控件的使用问题!!
  • 在ActiveX控件中使用多线程后Fire事件的问题
  • 可以在ActiveX控件下的Dialog画曲线图吗
  • 怎么才能获得微软Activex控件的帮助信息呢
  • 如何在单文档中使用ActiveX控件那?
  • Activex,参数传入的汉字在英文系统下为乱码
  • 这样得Activex问题大家以前碰到么?
  • 嵌在网页里的ACTIVEX控件不能销毁的问题。
  • 又是关于ActiveX控件下载的问题,希望大家都来讨论一下!!!!

相关文章

  • 2017-06-05 类中一个函数怎样等待另一个函数执行完毕
  • 2017-06-05 多线程(约几十个)同时访问一个mssql数据库,共用一个连接还是每线程一个连接好?
  • 2017-06-04 MSDN上Polygon那个ActiveX控件怎么在VC下没法用?
  • 2017-06-05 假期较长,寻找实习机会视公司情况可考虑毕业后长期供职
  • 2017-06-04 WH_GETMESSAGEHOOK调用回调函数失败
  • 2017-06-05 请问,线程内可不可以加定时器?
  • 2017-06-05 GetCurrentDirectory对于win2k和winxp得到的结果是不是不同啊?
  • 2017-06-04 ACTIVEX问题高分相送
  • 2017-06-04 ATL做组件时,Release版本连接问题,请大家帮忙!!100分够否??
  • 2017-06-05 怎样结束屏幕保护??

文章分类

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

最近更新的内容

    • 使用PostThreadMessage出错
    • 窗口里面怎么加入Excel表格控件,看上去跟Excel一样,不要是那种编辑的时候凸出来的感觉,或者有类似的控件能解析公式就行了
    • 求助复合文件访问权限问题
    • dll能使用activexcontrol吗?
    • 请问如何在Dll里面用计时器?
    • 初来乍到,弱弱的一问:主进程另开一个console程序,怎样让这个console程序在后台执行而不出现在屏幕上?急
    • borlandc++的问题呀,100分
    • 如何用ATL得到IDE代码编辑界面函数所在的行号
    • [现金酬谢]Excel的多语言支持
    • 求关于右键菜单的源码!

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

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