最初のアプリケーション
は C を使用してプログラムされ、2 つ目は VB.NET を使用してプログラムされた2 つのアプリケーションがあります。
最初のものを実行し、2番目のステータスを更新したままにしたい
それを行う方法はありますか?
私はそれらのいずれかのソースコードを変更できます
最初のアプリケーション
は C を使用してプログラムされ、2 つ目は VB.NET を使用してプログラムされた2 つのアプリケーションがあります。
最初のものを実行し、2番目のステータスを更新したままにしたい
それを行う方法はありますか?
私はそれらのいずれかのソースコードを変更できます
C と VB を使用すると複雑になることがわかりましたが、ここから開始できます http://msdn.microsoft.com/en-us/library/aa365574%28VS.85%29.aspx
OK、VB では、2 つのプログラム間でパラメーターを渡すことができるように、2 つのプログラム間のインターフェイスを実装する必要があります。
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