• 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 > [Help]两个关于数据类型转换的问题

[Help]两个关于数据类型转换的问题

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

佚名通过本文主要向大家介绍了help词性转换,help,help k3k,unity菜单栏help,help uber等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: [Help]两个关于数据类型转换的问题
描述:

大家好!我刚刚接触ATL COM编程,现在遇到了两个有关数据类型转换难题,故来请大家帮我一下。
1)我的组件里有一个unsigned char型的数组,我想将这个数据作为这个组件的属性公开,查了一下资料后,我想使用VARIANT类型作为这个属性的类型。但是结果总是不正确。如下是我的代码:
STDMETHODIMP CDeposit::get_Response(VARIANT *pVal)
{
// 获取无符号字符型数组
// Step 1: 变量声明
SAFEARRAYBOUND ResponseArrayBound; // 数组边界描述符
SAFEARRAY ResponseArray; // 安全数组描述符
// Step 2: 构造安全数组描述符
ResponseArrayBound.cElements = m_nArrayLength; // 响应的长度 ResponseArrayBound.lLbound = 1; // ? 等于 1 还是 0 呢 ?
ResponseArray.cDims = 1; // 维数
ResponseArray.fFeatures = 0;
ResponseArray.cbElements = 1; // 元素大小
ResponseArray.cLocks = 0;
ResponseArray.pvData = (void *)m_pArrayUChar; // 数据首址
ResponseArray.rgsabound[0] = ResponseArrayBound; // 边界描述符
// Step 3: 置返回值
VariantInit(pVal); // 勿忘我
pVal->vt = VT_ARRAY | VT_UI1;
pVal->parray = &ResponseArray;
return S_OK;
}
2)我还想为这个组件声明一个方法,其中该方法的一个输入参数应该是char型数组,但是好像COM支持的类型中没有char型的,所以我想用BSTR,然后,再用VectorFromBstr()将输入参数转换为所需要的单字节字符数组。这样做可以吗?
  或者有其它方法来实现吗?
  我的这个组件是想被ASP脚本来调用的。
  谢谢!


解决方案1:

要把char *转成BSTR
可用_bstr_t

解决方案2:

类型转换总结:
http://dev.csdn.net/develop/article/12/12365.shtm

解决方案3:

在COM中,传递字符串一般使用BSTR(BSTR*)


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

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

  • [Help]两个关于数据类型转换的问题

相关文章

  • 2017-06-04 复制本地文件到远程是哪个类?(C/C++wmi)
  • 2017-06-04 问个问题,能不能把DLL封装打包成ACTIVEX让WEB程序调用
  • 2017-06-04 初学ATLSERVER,有几个不明白的地方,想请教大侠们指教一二,谢谢
  • 2017-06-04 AttachDispatch()怎么使用,什么意思》
  • 2017-06-05 WTL模态对话框中嵌入WebBrowser控件TAB键失效问题。
  • 2017-06-05 菜鸟问题如何在vc里调用一个生成好的dllc呢??
  • 2017-06-04 activex的调试问题,在线等待
  • 2017-06-05 内存泄露了,该怎么办?
  • 2017-06-04 IDispatchInvoke如何传递js里的this
  • 2017-06-05 求Windows2000编程技术内幕随书源代码

文章分类

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

最近更新的内容

    • 采用CertEnroll中ix509EnrollMent接口的installresponse函数安装已有证书时提示供系统调用的数据区域太小
    • 子线程的终止问题
    • 如何解决dll冲突的问题??
    • 如何对DLL中的对话框里面嵌入的IE控件进行键盘消息响应?
    • 请教高手shell问题
    • 请帮忙看看这个报错
    • 我想在一个工作线程里做一个循环来检测发给自己的消息,怎么实现?
    • 为什么ATL在添加方法的时候,参数选项里面没有SAFEARRAY?
    • 请问各位高手,dirextX写的游戏能做在ActiveX里面吗????????????
    • 高手请进此问题太难了一般人恐怕不会!!100分奉上

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

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