我写了个MFC自动化双接口程序,要在网页中用脚本语言调用,怎样限制其只产生一个实例

Bowater 2005-10-20 10:52:57
用
GetActiveObject
RegisterActiveObject
RevokeActiveObject
的方法不行
因为脚本语言不能调用API


怎么办呀?
...全文
329 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
manand 2006-03-01
  • 打赏
  • 举报
回复
各位我用ATL做了个COM自动化组件,它包容了别的组件

奇怪的是用ASP调用时读的值总是0,没有任何出错信息

同一组件同一时间用VC客户端调一点没问题。这是为啥呀

我的QQ17365542想和这方面的专家好好谈谈必有重谢
Analyst 2005-10-29
  • 打赏
  • 举报
回复
再写个COM对象,让脚本通过这个对象得到你想要的单件对象。这样你就可以用C++来实现单件了。
像这样:
creator = new ActiveXObject("BookView.Creator");
Document = creator.CreateDocument();

在CreateDocument函数里用GetActiveObject返回你的BookView.Document对象就行了。
horris 2005-10-25
  • 打赏
  • 举报
回复
将组件缓存在Session里会极大地影响IIS的效率,微软明确反对这种做法,CSDN文档里有翻译。
应该用Singleton实现。
lemon_wei 2005-10-25
  • 打赏
  • 举报
回复
你在首页创建这个对象,然后把这个对象保存到Session里面,以后调用时调用这个Session就是了。比如
set objCatcher=GetObject("BookView.Document")
Session("MyObj") = objCatcher

以后使用 Session("MyObj") 就是了
Bowater 2005-10-21
  • 打赏
  • 举报
回复
C++里管用
CoInitialize(NULL);
CLSID clsid;
if(SUCCEEDED(CLSIDFromProgID(OLESTR("BookView.Document"),&clsid)))
{
IUnknown* pUnknown;
HRESULT rs=::GetActiveObject(clsid,NULL,&pUnknown);
if(rs==S_OK)
{
}
}
脚本里不管用
<script language="VBScript">

Sub OnContextMenu()
On Error Resume Next
set objCatcher=GetObject("BookView.Document")
if err<>0 then
err=0
set objCatcher=CreateObject("BookView.Document")
end if
if err<>0 then
Alert("error!")
else
objCatcher.ViewString(external.menuArguments.document.selection.createRange().text)
end if
end sub

Call OnContextMenu()
</script>
Bowater 2005-10-21
  • 打赏
  • 举报
回复
我查MSDN里在脚本里GetObject (“ProgID”) =
C++里
CLSIDFromProgID
GetActiveObject on class ID.
QueryInterface to get IDispatch interface.

可是也不行,用C++编的客户端可以实现一个实例,但是JScript和VBScript编的用GetObject不管用
Bowater 2005-10-21
  • 打赏
  • 举报
回复
脚本程序中只调用一次new ActiveXObject
而这个脚本程序回被多次调用,希望每回调用都返回同一个
就好像用flashget下载,在浏览器右键菜单中多次点下载这个链接,而不会开多个flashget实例
我的软件就是类似FlashGet这种情况
wshcdr 2005-10-21
  • 打赏
  • 举报
回复
You can treat the new ActiveXObject as a new alias of an existing object, attach to the object and redirect all operation to it.

///////////////////////
呵呵,典型的Singleton模式
zxyjyzxyjy 2005-10-21
  • 打赏
  • 举报
回复
脚本语言里不能缓存对象吗?
蒋晟 2005-10-21
  • 打赏
  • 举报
回复
You can treat the new ActiveXObject as a new alias of an existing object, attach to the object and redirect all operation to it.
Bowater 2005-10-20
  • 打赏
  • 举报
回复
希望每回调用new ActiveXObject时都返回同一个实例
内容概要:本文介绍了COSO企业风险管理框架,阐述了企业风险管理的定义、目标、构成要素及其与内部控制的关系。文章指出,企业风险管理是一个由董事会、管理层及其他人员实施的,应用于战略制定并贯穿于企业之中的过程,旨在识别可能影响主体的潜在事项,管理风险以使其在该主体的风险容量之内,并为主体目标的实现提供合理保证。该框架强调了企业风险管理的八大构成要素:内部环境、目标设定、事项识别、风险评估、风险应对、控制活动、信息与沟通、监控。此外,文章还讨论了企业风险管理的局限性,如人为判断失误、成本与效益的权衡、管理层凌驾等。 适合人群:具备一定管理学基础知识,对风险管理有兴趣的学者、企业管理人员、内部审计师及外部审计师。 使用场景及目标:①帮助组织理解并应用企业风险管理框架,以提高组织的风险管理水平;②指导企业如何通过有效的风险管理来实现其战略、经营、报告和合规目标;③为企业提供一套标准化的风险管理语言,促进内外部沟通与合作。 阅读建议:读者应结合实际案例,深入理解每个构成要素的具体应用,同时关注企业风险管理的局限性,以全面把握企业风险管理的本质。此外,建议定期回顾和更新风险管理策略,以适应不断变化的内外部环境。

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧