Automation 错误

zlhys 2007-05-16 09:59:19
运行时错误 '-2147024714 (800700b6)'
Automation 错误



我在PB中写了一个调用一卡通的DLL,这个DLL再调用初始的DLL,然后用VB来访问这个PB写的DLL,调用里面的函数时就提示上面的错误,有解决的办法吗?问题出在哪?大家帮帮忙,我VB主要不太了解.
...全文
1229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
我也想了解,谢谢LZ.
sjdev 2007-07-15
  • 打赏
  • 举报
回复
你也可以用js中抛出异常来查看出错原因。
它会把错误代码给解释成出错的原因的。
sjdev 2007-07-15
  • 打赏
  • 举报
回复
你用vbs/js测试一下,看对像有没有创建成功。
junki 2007-06-07
  • 打赏
  • 举报
回复
PB写的DLL有没有测试过?
贴出PB写的DLL的原型?
zlhys 2007-05-16
  • 打赏
  • 举报
回复
太复杂了,呵呵.我就是这样用的:

'申明
Dim object1 As New lb_jk.COClass_n_lb_jk
'三个按钮的使用

Private Sub Command1_Click()
Text1.Text = object1.f_readcardno()
End Sub

Private Sub Command2_Click()
If object1.f_linkcom() = False Then
Text1.Text = "串口打开错误"
Else
Command1.Enabled = True
Command3.Enabled = True
End If

End Sub


Private Sub Command3_Click()
object1.f_unlinkcom

End Sub

mndsoft 2007-05-16
  • 打赏
  • 举报
回复
首先,要注意DLL中的函数和VB中的函数声明在名称、返回类型、参数类型、参数个数等方面必须完全相同,尤其要注意大小写的问题。
  其次,在DLL的.def文件中必须加上入口函数。
  最后,在函数定义前必须加上extern "c",_stdcall关键字。

  由于DLL经常用来进行一些底层的运算操作,因此应用程序常需要传递大量的数据给DLL。在C++中,指针是进行数组操作的最佳选择,但VB中没有指针的概念。这通常可用两种方法来解决。
  其一,在VB中声明DLL时,用byref来代替byval,即可将数组指针传递给DLL。
  另外,将数组声明为变体型(variant),即可直接将数组传递给DLL。

863

社区成员

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

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