• 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 > --==急==--ATL制作Activex控件时,我想得到一个属性的值(字符串)可是在JS中调出的是乱码。

--==急==--ATL制作Activex控件时,我想得到一个属性的值(字符串)可是在JS中调出的是乱码。

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

佚名通过本文主要向大家介绍了 --==急==--ATL制作Activex控件时,我想得到一个属性的值(字符串)可是在JS中调出的是乱码。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: --==急==--ATL 制作Activex控件时,我想得到一个属性的值(字符串)可是在JS中调出的是乱码。
描述:

我做了一个控件,需要去得一个结果
STDMETHODIMP CEKEY::get_UserID(BSTR* pVal)
{
// TODO: 在此添加实现代码
*pVal=(BSTR)readFile();
return S_OK;
}
STDMETHODIMP CEKEY::put_UserID(BSTR newVal)
{
// TODO: 在此添加实现代码
return S_OK;
}
可是在JS中得到的值是乱码
如果改成:
STDMETHODIMP CEKEY::get_UserID(BSTR* pVal)
{
// TODO: 在此添加实现代码
*pVal=(BSTR)"FF";
return S_OK;
}
得到的也同样是乱码。
各位大哥大姐,救救我吧。
STDMETHODIMP CEKEY::put_UserID(BSTR newVal)
{
// TODO: 在此添加实现代码
return S_OK;
}


解决方案1:

sorry ,那是我自己的代码。
int VariantTool::bstr2ansi(BSTR bStr, char * pStr, int nLen)
{
int nRet = 0;
int nbstrlen = ::SysStringLen(bStr);
if (nLen < (nbstrlen<<1))
nRet = -1;
else if (nbstrlen == 0)
nRet = 0;
else
nRet = ::WideCharToMultiByte(CP_ACP,0,bStr,nbstrlen,pStr,nLen,NULL,NULL);
return nRet;
}
int VariantTool::ansi2bstr(char * pStr, BSTR * pbStr)
{
int nRet = 0;
int nSrclen = ::strlen(pStr);
if (nSrclen != 0)
{
int nDeslen = (nSrclen+1) * sizeof(WCHAR);
*pbStr = new WCHAR [nDeslen];
::ZeroMemory(*pbStr,nDeslen);
nRet = ::MultiByteToWideChar(CP_ACP,MB_COMPOSITE | MB_USEGLYPHCHARS,pStr,::strlen(pStr),*pbStr,nDeslen);
}
return nRet;
}

解决方案2:

用 VariantTool::bstr2ansi 转换一下


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

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

  • --==急==--ATL制作Activex控件时,我想得到一个属性的值(字符串)可是在JS中调出的是乱码。

相关文章

  • 2017-06-04 想HookADO中的DllGetClassObject方法,以监视应用程序使用ADO进行的数据库连接,可行么?
  • 2017-06-04 用ATL开发AcxtiveX控件中!编译错误的!急,请教!
  • 2017-06-04 VS2010使用mscomm控件无法接收数据
  • 2017-06-04 MFC嵌入WindowsMediaPlayer控件
  • 2017-06-04 VC调用Excel中如何设置网格打印
  • 2017-06-04 VC6下操作Excel时内存一直增长,还有怎样关闭Excel进程给分
  • 2017-06-04 请问如何在WebBrowser中获得鼠标位置
  • 2017-06-04 ExitWindows、IXY请进来领分。版主请勿删,借个地方,谢谢了。
  • 2017-06-05 可不可以做到:不加信任站点直接访问ocx
  • 2017-06-04 TWAIN协议中关于条码识别问题

文章分类

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

最近更新的内容

    • 请教如何暂停别的程序(要多少分都可以!)
    • 扩展explorer的文件检索
    • 我从网上下载了<<com组件设计与应用>>的代码,第15讲的,编译出错。
    • VS2010建立ATL项目出问题!
    • 从DLL文件中导出类的问题
    • 如何创建一个能显示Dialog的activex????
    • 请教用IHTMLDocument获取文本内容的问题?
    • com接口间的查询必须要在同一个com对象中吗?
    • 帮忙看看我的DLL,为什么不成功?
    • 如何向不同Desktop下的进程发消息?(如由外部进程(UserDesktop向Gina发消息通知?)

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

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