0

最初のアプリケーション
は C を使用してプログラムされ、2 つ目は VB.NET を使用してプログラムされた2 つのアプリケーションがあります。

最初のものを実行し、2番目のステータスを更新したままにしたい

それを行う方法はありますか?

私はそれらのいずれかのソースコードを変更できます

4

2 に答える 2

0

C と VB を使用すると複雑になることがわかりましたが、ここから開始できます http://msdn.microsoft.com/en-us/library/aa365574%28VS.85%29.aspx

于 2014-03-05T16:17:38.760 に答える
0

OK、VB では、2 つのプログラム間でパラメーターを渡すことができるように、2 つのプログラム間のインターフェイスを実装する必要があります。

  • 「system」と「system.reflection」をインポートすることを忘れないでください

program1 (呼び出しプログラム) で、これを設定しました。

Dim oType As System.Type
Dim oAssembly As System.Reflection.Assembly
Dim oObject As System.Object

oAssembly = Reflection.Assembly.LoadFrom("C:\VB.NET\report3.exe")
oType = oAssembly.GetType("report3.r1") ' this is [root_namespace.class name]
oObject = Activator.CreateInstance(oType)
oObject.SetParams("a", "b")
oObject.show()

これにより、report3.exe が実行され、"a" および "b" パラメーターが値として送信されます。

次に、program2 (report3.exe) で、次のように設定します。

Imports System.Reflection

Public Class r1

    Implements IPlugin

    Public person As String = ""
    Public address As String = ""


    Private Sub r1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        Me.TopMost = True 'optional

        Dim b1 As New Label()
        With b1
            .Location = New Point(10, 10)
            .Width = 200
            .Height = 20
            .Parent = Me
            .BackColor = Color.Blue
            .ForeColor = Color.White
            .Text = person
        End With

        call_addr()
    End Sub


    Public Sub SetParams(c As String, d As String) Implements IPlugin.SetParams
        person = c
        address = d
    End Sub

    Private Sub call_addr()
        Dim b2 As New Label()
        With b2
            .Location = New Point(10, 50)
            .Width = 200
            .Height = 20
            .Parent = Me
            .BackColor = Color.Red
            .text = address
        End With
    End Sub

End Class


Public Interface IPlugin
    Sub SetParams(ByVal c As String, ByVal d As String)
End Interface
于 2014-03-05T17:49:20.027 に答える