• 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 > COM组件与网页传递结构参数问题~~~~~~~~~~~~~~~~

COM组件与网页传递结构参数问题~~~~~~~~~~~~~~~~

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

佚名通过本文主要向大家介绍了com组件,com组件是什么,com组件下载,com组件注册,com组件编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM 组件与网页传递结构参数问题~~~~~~~~~~~~~~~~
描述:

在 VB 中能够实现与 ATL 做的 COM 实现用结构做方法的参数,但把代码贴入网页中就不能运行,我不会做网页,希望大家帮忙啊
VC 中方法定义如下:
[id(3), helpstring("method GetRead")] HRESULT GetRead([out]READ *p);
VB 中调用代码如下
    Dim obj As New TESTLib.MyObject
    Dim pr As READ
    Call obj.GetRead(pr)
 此时能够正常返回
但在网页中却行不通
     dim obj
     set obj = Createobject("TEST.MyObject")
     Dim pr As READ
     Call obj.GetRead(pr)
网页中总是提示:没有 READ 的声明,我该怎么做才能实现与 VB 中同样的结果呢?


解决方案1:

void CMyIeDlg::putArrays()
{
HRESULT hr;
SAFEARRAY* psaStudent = NULL;
SAFEARRAYBOUND rgbounds = { 4, 0 };
studentsInfo *pStudentStruct = NULL;
psaStudent = SafeArrayCreate(VT_VARIANT, 1, &rgbounds);
hr = SafeArrayAccessData(psaStudent, reinterpret_cast<PVOID*>(&pStudentStruct));
pStudentStruct[0].grade = 3;
pStudentStruct[0].name = SysAllocString(L"Shaun");
pStudentStruct[0].type = class_Clown;
pStudentStruct[1].grade = 8;
pStudentStruct[1].name = SysAllocString(L"Fred");
pStudentStruct[1].type = school_Bully;
pStudentStruct[2].grade = 12;
pStudentStruct[2].name = SysAllocString(L"Steve");
pStudentStruct[2].type = teachers_Favorite;
pStudentStruct[3].grade = 3;
pStudentStruct[3].name = SysAllocString(L"Linda");
pStudentStruct[3].type = teachers_Favorite;
hr = SafeArrayUnaccessData(psaStudent);
m_array.vt = VT_ARRAY;
m_array.parray = psaStudent;
}
加上参数更简单
void CMyIeDlg::putArrays(SAFEARRAY* psaStudent)
{
   m_array.vt = VT_ARRAY;
   HRESULT hr = SafeArrayAccessData(psaStudent,m_array.parray );
   SafeArrayUnaccessData(psaStudent);
   return hr;
}
或者
void CMyIeDlg::putArrays(VARIANT* psaStudent)
{
   HRESULT hr = SafeArrayAccessData(psaStudent.parray ,m_array.parray );
   SafeArrayUnaccessData(psaStudent.parray );
   return hr;
}


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

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

  • COM组件的变量问题?
  • DLL中对进程外的ActiveX/COM组件(EXE形式)的对象实例化问题,DLL内不支持调进程外COM??
  • 怎样将原来不支持COM的mfc类,成为com类
  • MFC实现COM的接口映射的问题。请教高手。急。。
  • COM+组件的注册问题?
  • 关于COM组件的问题
  • com组件全局变量问题
  • COM组件和主程序之间的数据传输问题??
  • MFC中添加服务器组件的注册问题。
  • Com组件使用Recordset的游标问题

相关文章

  • 2017-06-04 搞难度问题,如何在打开MSWORD文档时,之对文档中的部分内容有编辑权限例如表格中可以编辑,其他位置不允许
  • 2017-06-04 WORD的一个签章控件
  • 2017-06-04 如何在一个类里实现两个接口的问题
  • 2017-06-04 如何把一个单文档应用程序改成一个DLL?
  • 2017-06-04 高分求解MFC自动化程序中实现CallBack,例子。包手Server和Client。一但通过200分不是问题
  • 2017-06-05 怎么按照COM的格式写一个DLL呢?
  • 2017-06-05 同步问题----我写了一个dll,能不定时接受一些数据并放在一个char类型数组里,
  • 2017-06-05 接着问:连接问题
  • 2017-06-05 Delphi下如何传递一个Integer数组的指针给用VC做的dll?
  • 2017-06-05 请教:如何在一个工程中包含两个MFCactivexcontrol,并且编译在一个ocx中

文章分类

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

最近更新的内容

    • 如何将一个资源做成DLL??
    • 帮帮我这个初学者
    • c#调用vc2005开发的ActiveX控件的问题
    • 怎样在主线程中中止另外一个辅助线程,辅线程内最好不要时时检查某种状态之类的代码
    • 这个Hook该如何写?
    • 怎样加载一个新建的dll文件?
    • 关于ATL实现COM聚合的问题(急)
    • ocx中引用了另外一个ocx,如何打cab包,跪求
    • 关于visio绘图控件的使用
    • ActiveX注册不成功?大侠请进

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

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