首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveX通信

ActiveX通信
EN

Stack Overflow用户
提问于 2008-10-27 14:37:56
回答 2查看 525关注 0票数 0

我正在开发一个向第三方软件公开特定类的ActiveX EXE。这个第三方软件实例化这个类的一个对象并使用它的方法。

我唯一的线索是这个方法是唯一一个返回值的方法。所有其他函数都是简单的“subs”,不返回任何值,当它们被调用时,没有任何错误发生。

我使用的是VB6。

你们知道为什么会这样吗?

EN

回答 2

Stack Overflow用户

发布于 2008-10-27 14:42:30

当最后一个引用被删除时,你的对象就会被“销毁”。这是正常的COM行为。或者是你的对象毫无例外地死亡了,第三方应用程序得到了一个activex错误?

更多的问题:

  • 我不知道您说的“数据服务器”是什么意思?
  • 您有权访问第三方应用程序的源代码吗?
  • 您确定,第三方应用程序包含对您的对象的引用吗?
  • 您的对象代码方法名为?

< Class_Terminate >F29

编辑: OK,当Class_Terminate被调用时,很明显,第三方应用程序已经删除了对您的对象的引用。

票数 1
EN

Stack Overflow用户

发布于 2008-10-27 15:47:30

正如Jan在COM中所说的那样,如果没有人引用你的对象,那么它就会终止,这是正常的。如果你想做一些缓存(例如,保持DB连接打开),你可以使用一个定义在bas-module中的全局变量。

basGlobal.bas

代码语言:javascript
复制
Global AGlobalVariable As Object

Connector.cls

代码语言:javascript
复制
Public Function GetFoo() As Object
  If AGlobalVariable Is Nothing then
    Set AGlobalVariable = ...
  End If 
  Set GetFoo = AGlobalVariable
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/240102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档