activex dll事件问题,为何编译成DLL后引用事件无法激活,而在工程中可以?(很奇怪)

BadCatw 2003-11-14 09:09:19
ACTIVEX DLL中有个方法,显示一个窗体,当单击这个窗体的按扭时,激活DLL的一个事件。在测试工程中运行都很正常,可是编译成DLL后,再用其他工程引用这个DLL,就没办法激活这个事件了。(如果窗体显示为模式就出现这种情况,而设置成无模式就不出现这种情况)。我这里有简单的代码,谁帮我看看,留下EMAIL,我发给你
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BadCatw 2003-11-14
  • 打赏
  • 举报
回复
我在DLL中没有使用 msgbox,inputbox


哈哈。这个问题我刚刚用其他方法解决了。
songwei00 2003-11-14
  • 打赏
  • 举报
回复
在Dll中最好不要用输入或输出函数。如msgbox,inputbox!!!!
BadCatw 2003-11-14
  • 打赏
  • 举报
回复
代码不长:
新建一个activex dll 工程,添加一个窗体,在窗体上添加一个按扭.
窗体代码:

Option Explicit
Public Event Click()
Private Sub Command1_Click()
RaiseEvent Click
End Sub


类模块中的代码:
Option Explicit
Public Event showTxt()
Dim WithEvents thePreForm As PreForm
Private Sub thePreForm_Click()
RaiseEvent showTxt
End Sub
Public Sub Start()
If thePreForm Is Nothing Then
Set thePreForm = New PreForm
End If
thePreForm.Show vbModal'此处如果用无模式窗体就不会出现问题。
End Sub


然后添加测试工程,在窗体上加一个按扭,并引用这个DLL工程。
Option Explicit
Dim WithEvents testEvent As MainClass
Private Sub Command1_Click()
Set testEvent = New MainClass
testEvent.Start
End Sub

Private Sub testEvent_showTxt()
MsgBox "afsfasd"
End Sub

关键是,在测试中可以执行 MsgBox "afsfasd"
而编译成DLL后再引用,就不执行了。
rainstormmaster 2003-11-14
  • 打赏
  • 举报
回复
代码不长的话,贴上来
BadCatw 2003-11-14
  • 打赏
  • 举报
回复
TO lxqlogo0(群子) 我在测试工程中通过了,不是语法问题。只是DLL编译后运行就不正常了。
lxqlogo0 2003-11-14
  • 打赏
  • 举报
回复
Dim WithEvents obj As 类


定义对象时加withevents关键字

1,451

社区成员

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

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