怎么用DLL实现两个VB程序间的数据交换


如何用DLL实现两个VB程序间的数据交换?
我做了的DLL,代码如下:

类名:clsTest

Option Explicit

Public Event evTell(ByVal nGun As Integer)

Dim strTest   As String

Public Property Get strShow() As String

   strShow = strTest

End Property


Public Property Let strShow(ByVal NewValue As String)

      strTest = NewValue

End Property


Public Sub Tell(ByVal nGun As Integer)

      RaiseEvent evTell(nGun)

      strTest = nGun

End Sub


Private Sub Class_Initialize()

   strTest = "Start"

End Sub

应用程序1引用了该DLL后,在form1中代码为:

Option Explicit

Dim WithEvents TemN  As clsTest

Private Sub Command1_Click()                 '这是个命令按钮1

  TemN.Tell (1)

End Sub


Private Sub Form_Load()

  Set TemN = New clsTest

End Sub


Private Sub TemN_evTell(ByVal nGun As Integer)

  MsgBox "P1:  " &  nGun

End Sub


Private Sub Command2_Click()        '命令按钮2

  TemN.strShow = "Che Show"

End Sub


应用程序2代码:

Option Explicit

Dim WithEvents TemN  As clsTest

Private Sub Command1_Click()      '应用程序2的按钮

  MsgBox TemN.strShow

End Sub


Private Sub Form_Load()

  Set TemN = New clsCheInfo

End Sub


Private Sub TemN_evTell(ByVal nGun As Integer)

  MsgBox "P2:" &  nGun

End Sub


测试时:应用程序1按按钮1后,出现提示“P1:1”,应用程序2无提示

        应用程序1按按钮2后,应用程序2按按钮仍然提示是“Start”

我想,这是因为两个应用程序采用了不同的实例的原因,但要实现按应用程序1按钮1后,应用

程序2能得知,及应用程序1修改了strTest的值后,应用程序2能得到这个改变的值,该如何实现呢?



VisualBasic程序开发环境 程序开发 VisualBasic

暁美吼姆辣 10 years, 4 months ago

进程间通信用DDE?肯定有好的办法,不过我还不知道

asdas answered 10 years, 4 months ago

其实不需要用DLL,因为VB6带有的DDE数据交换技术就可以实现两个或多个不同程序间的数据交换,我哪有源码,拿去参看参看吧。

下载那篇源码。

吃人的虎型妖兽 answered 10 years, 4 months ago

有一定的参考价值,不过这样做显得有些烦琐,还是感谢

一手一根小黄瓜 answered 10 years, 4 months ago

logID=365&cateID=2

这个类型库无法下载啊,打不开网页

经常晚到一步君 answered 10 years, 4 months ago

logID=363&cateID=2


共享内存+消息实现跨进程通讯的类.


可以参考一下.

globecg answered 10 years, 4 months ago

Your Answer