“未设置对象变量或With Block变量”

leekkeek 2005-07-13 05:04:16
我在设计一个ocx控件。当调用我自己写的过程时,经常出现提示:“未设置对象变量或With Block变量”。害得我不得不把好多代码写在一个过程里。
这是为什么呀。应该如何解决呢?
...全文
2051 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leekkeek 2005-07-14
  • 打赏
  • 举报
回复
'以下是我的代码

Public Function LikeIsMyEkey() As Boolean
On Error GoTo DeErr

Dim i As Long
Dim PubCertInKey As New Certificate
Dim strPubCertInKey As String
Dim Rtn As Long
Dim iPort As Long
Dim dwContainerNo As Long
Dim dwKeySpec As Long
Dim CertLen As Long
Dim CertDataTemp() As Byte
Dim CertData() As Byte

LikeIsMyEkey = False

iPort = 0
Rtn = XC_ConnectEkey(iPort, hEkey)
Select Case Rtn
Case 0
' MsgBox "连接Ekey成功!", vbInformation, "连接Ekey"
Case Else
' MsgBox "连接Ekey失败!", vbCritical, "连接Ekey"
MsgBox funGetEkeyErrMsg(Rtn) & Rtn, vbInformation, "读Ekey内签名公钥时,连接EKey失败"
Exit Function
End Select

dwContainerNo = 0
Rtn = XC_SetCurContainer(hEkey, dwContainerNo, hContainer)
Select Case Rtn
Case 0
' MsgBox "设置当前容器成功!", vbInformation, "设置当前容器"
Case Else
MsgBox funGetEkeyErrMsg(Rtn) & Rtn, vbCritical, "读Ekey内签名公钥时,设置当前容器失败"
Exit Function
End Select

dwKeySpec = 2
CertLen = 4096
ReDim CertDataTemp(1 To CertLen)
Rtn = XC_ReadCert(hContainer, CertDataTemp(1), CertLen, dwKeySpec)
Select Case Rtn
Case 0
ReDim CertData(1 To CertLen)
For i = 1 To CertLen
CertData(i) = CertDataTemp(i)
Next
PubCertInKey.Import CertData
strPubCertInKey = PubCertInKey.Export(CAPICOM_ENCODE_BASE64)
Case Else
MsgBox funGetEkeyErrMsg(Rtn) & Rtn, vbCritical, "读Ekey内签名公钥时,证书提取失败!"
Exit Function
End Select

Rtn = XC_DisconnectEkey(hEkey)
Select Case Rtn
Case 0
' MsgBox "断开Ekey成功!", vbInformation, "断开Ekey"
Case Else
' MsgBox "断开Ekey失败!", vbCritical, "断开Ekey"
MsgBox funGetEkeyErrMsg(Rtn) & Rtn, vbInformation, "读Ekey内签名公钥时,断开EKey失败"
Exit Function
End Select

If strPubCertInKey = B64PubSignCert Then
LikeIsMyEkey = True
End If
DoEvents

Exit Function
DeErr:
MsgBox Err.Description, vbCritical, "Ekey归属检测"
End Function

Private Sub mnutest_Click()
On Error GoTo DeErr

If LikeIsMyEkey = True Then
MsgBox "Ekey ok"
MsgBox LikeIsMyEkey
Else
MsgBox "Ekey bad"
End If


Exit Sub
DeErr:
MsgBox Err.Description, vbCritical, "测试"
End Sub
leekkeek 2005-07-13
  • 打赏
  • 举报
回复
1、一个插入到Word里的控件,我的确不知道怎么进行调试,希望指点一下。我只能加入大量的msgbox函数。
2、在调用对象的时候都使用set xxx=new xxx。但是,只要我把一些功能写成一个单独function,就会不时的报错。不只是一个过程,一多半过程都是这样。
kingnew 2005-07-13
  • 打赏
  • 举报
回复
set xxx=new xxx
daisy8675 2005-07-13
  • 打赏
  • 举报
回复
倒,你都没代码,怎么看,F8调试。

1,451

社区成员

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

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