一个关于VB DLL的问题

tawe 2001-09-24 12:17:29
DLL:
Public Function calctime(ByVal sTimeStart As String, ByVal sTimeEnd As String) As Double
calctime = DateDiff("n", sTimeStart, sTimeEnd)
End Function

调用:
Dim objObject As New tw.TimeFunction

Private Sub Form_Load()
Label1.Caption = objObject.calctime("12/3/90", "12/4/90")
End Sub

当调用的这个程序生成.EXE调用DLL很正常,但把DLL改动成:
Public Function calctime(ByVal sTimeStart As String, ByVal sTimeEnd As String) As Double
calctime = DateDiff("n", sTimeStart, sTimeEnd)+10
End Function
再执行.EXE程序时报错???????
报错如下:
run-time error '430'

class does not support automation or does net support expected interface
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tawe 2001-10-02
  • 打赏
  • 举报
回复
TO:progame
谢谢你的回答
你的意思是DLL改过编译之后,引用它的EXE文件就要重新编译,是吗?
但如此一来DLL的优势何在呢??????
progame 2001-10-02
  • 打赏
  • 举报
回复
但第一次你是无法设的,必须在编译一次才行

但你可以使用这种方法,即不进行引用,直接使用
dim mDll as object

然后用CreateObject()来创建,这样的话,在此EXE文件中就不会
不会带上引类的引用信息,如果此类已注册,则不管其版本为多少
只要接口可用就行
progame 2001-10-02
  • 打赏
  • 举报
回复
呵呵呵,不是的,如果你将DLL的project属性中设成二进制兼容就不用了
tawe 2001-10-02
  • 打赏
  • 举报
回复
有谁能把问题说得更清楚一点吗???
先谢了!!!!
progame 2001-10-02
  • 打赏
  • 举报
回复
这个问题回答过了呀:)
是你的DLL已经自动升级了
你应该重新引用一下
或者设置为二进制兼容就好了
HowardOK 2001-10-02
  • 打赏
  • 举报
回复
DateDiff 是个什么函数呀??
tawe 2001-10-01
  • 打赏
  • 举报
回复
难道就没有人知道吗?????
tawe 2001-09-28
  • 打赏
  • 举报
回复
请大家关注一下!!!!

7,763

社区成员

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

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