• 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 > atlactivex部署及添加方法

atlactivex部署及添加方法

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

佚名通过本文主要向大家介绍了tomcat部署项目的方法,部署方法,查数据 听方法 看部署,tomcat部署方法,无线局域网的部署方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: atl activex部署及添加方法
描述:

我用ATL创建了一个ActiveX控件,用来在网页上使用,我想从ActiveX中获取一个字符串,但是调用失败。不知为什么,我添加方法是这样做的,是在VS2005下类视图中的IsfeEdit或键菜单中添加的方法,sfeEdit是类名
idl文件中自动加入 [id(1), helpstring("方法GetContent")] HRESULT GetContent([out,retval] BSTR* lpStr);
sfeEdit.h中加入 STDMETHOD(GetContent)(BSTR* lpStr);
sfeEdit.cpp中加入
STDMETHODIMP CCA::GetContent(BSTR* lpStr)
{
    *lpStr = L"abc"; 
    return S_OK;
}
在网页中调用的方法是:
<HTML>
<BODY>
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
Sub button1_onclick
Dim st1(1), st2
 st2 = CA.GetContent
text1.value=str2
End Sub
</SCRIPT>
<INPUT id=button1 type=button value=Button name=button1>
<OBJECT ID="CA" CLASSID="CLSID:F85B5792-C78B-42CD-A1F9-8B024D046C84" width = 200 height=22 codebase="safeEdit.CAB">
 </OBJECT>
<input id=text1 type=text name=text1 />
</BODY>
</HTML>
但是运行网页时出错,连网页都异常死了,请问高手在ATL ActiveX控件中怎么样传出字符串或别的数据。
另外一个最重要的是,在运行这个网页时需要部署,如果把该网页放到internet上怎么让网页自动下载该ActiveX控件并能运行,不出现ie阻止的对话窗口。


解决方案1:

*lpStr = L"abc";呵呵,一般的人在字符串分配上都容易犯的错,这一句绝对异常,因为输出的是另一个进程里的指针。进程间的内存是受保护的(除非是共享内存),否则非法异常。可以改为sprintf(lpstr,"abc")类似的方法

解决方案2:

不能等于常量,得分配内存。


STDMETHODIMP CCA::GetContent(BSTR* lpStr)
{
    *lpStr = SysAllocString(L"abc");
    return S_OK;
}

解决方案3:

看看我以前的整理
http://blog.csdn.net/wangweixing2000/archive/2007/11/19/1893602.aspx

解决方案4:

www.codeproject.com/KB/COM/CompleteActiveX.aspx


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

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

  • atlactivex部署及添加方法

相关文章

  • 2017-06-05 WindowsAPI线程的问题!!求助!!
  • 2017-06-04 如何用ATL得到IDE代码编辑界面函数所在的行号
  • 2017-06-05 在WTL项目中添加ATL简单对象报错
  • 2017-06-04 新手傻瓜问题ATL不能实例化抽象类
  • 2017-06-05 使用COM组件实现本地进程外通信
  • 2017-06-05 vc中用到direcyshow时出现的问题
  • 2017-06-04 DCOM高手请进
  • 2017-06-05 书上说,线程分为工作者线程与UI线程工作者线程见得多了但,怎样编写一个UI线程信相应的执行函数?
  • 2017-06-05 关于进程介入??`
  • 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
  • 微信公众号

最近更新的内容

    • 各位大侠,救命呀!!!
    • 如何将一个文件加入到dll中?又如何展开调用呢?
    • 我想做个VB使用的DLL,但是需要给它提供大量的数据,并且需要它输出大量数据,各位能给个方案么?
    • vc60中配置directshow开发环境
    • 关于Win32Service的功能一问Win2K下
    • VC中有从exe文件转换到dll/lib文件的方法吗
    • 在vc中如何动态地加载封装在dll中的类?
    • 如何从dll的路径得到clsid
    • 关于_beginthreadex的使用。程序有错误,进来帮帮忙
    • warningC4192

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

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