分布式组件状态问题

breadjyh 2007-10-19 03:22:07
创建了一个activex exe工程,想实现一个客户端只能调用一次此工程中的方法。
我在模块中定义了一个public的数组,想用它来保存客户端信息,但是在执行时不能实现此功能。
代码如下:
'模块代码
Public arrUsers() As String
'类代码
Public Function ConRegCenter(ByVal UserName As String) As String
If addUser(UserName) Then
ConRegCenter = "hello:" & UserName
Else
ConRegCenter = UserName & ",该用户已经存在!"
End If
End Function
Private Function addUser(ByVal UserName As String) As Boolean
Dim i As Integer, j As Integer
j = UBound(arrUsers)
For i = 1 To j
If arrUsers(i) = UserName Then
Exit Function
End If
Next
j = j + 1
ReDim Preserve arrUsers(0 To j) As String
arrUsers(j) = UserName
addUser = True
End Function
Private Sub Class_Initialize()
ReDim arrUsers(0 To 0) As String
arrUsers(0) = ""
End Sub
'客户端代码
Private Sub Command1_Click()
Dim m_cls1 As New clsRegCenter
MsgBox m_cls1.ConRegCenter(Text1.Text)
End Sub

客户端在执行时,在文本框中输入相同的字符串应该在第一次之后提示“用户已经存在”,但是每次的结果都是一样的
...全文
59 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2007-10-26
  • 打赏
  • 举报
回复
多客户端之间的状态共享需要用到共享属性,在 MSDN 中查看 SharedPropertyGroupManager,有例程。
tianhuo_soft 2007-10-26
  • 打赏
  • 举报
回复
可以在模块中保存 模拟出静态变量的效果 但并不好,error比较多
vansoft 2007-10-26
  • 打赏
  • 举报
回复
VB的CLASS没有静态变量
东方之珠 2007-10-26
  • 打赏
  • 举报
回复
想实现一个客户端只能调用一次此工程中的方法。
答:设置一个布尔变量即可解决。比如AlreadyCall=true,调用一次之后,改为AlreadyCall=false。
breadjyh 2007-10-22
  • 打赏
  • 举报
回复
可算有个人顶了
不过没结果呀
tianhuo_soft 2007-10-20
  • 打赏
  • 举报
回复
不懂 帮你顶

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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