VB ActiveX EXE 问题,不太难

solomon 2001-11-23 10:26:27
服务器程序如下:
private sub class_Initialize
gcnt = gcnt + 1
end sub
private sub class_Terminate
gcnt = gcnt - 1
end sub
客户端 CreateObject 可以执行 class_Initialize
客户端退出时可以执行 class_Terminate
但是, 服务器程序改成如下后 客户端退出时不执行 class_Terminate
(gcnt, col 全局变量)
dim key as string
private sub class_Initialize
gcnt = gcnt + 1
key = randomkey()
gcol.add me, key
end sub

private sub class_Terminate
gcnt = gcnt - 1
gcol.remove key
end sub




...全文
118 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
solomon 2001-11-28
  • 打赏
  • 举报
回复
我希望客户端除了创建OBJECT, 其它都不要做, 如果客户端写程序的
人忘了些 REMOVECLIENT,不就有问题了?
jacklondon 2001-11-23
  • 打赏
  • 举报
回复
写错了。
public sub RemoveClient
if gcnt =0 then gcol.remove key
end sub

jacklondon 2001-11-23
  • 打赏
  • 举报
回复
在class_Terminate执行前,对应客户端的服务器一个实例保存在gcol中,由于VB采用引用记数,所以不会执行class_Terminate。
解决方法:
在服务器程序加一个方法,
public sub RemoveClient
gcol.remove key
end sub
客户端退出之前执行RemoveClient就可以了。

7,786

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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