DOBON.NET DOBON.NETプログラミング掲示板過去ログ

プロパティの設定方法

環境/言語:[VB.NET 2005]
分類:[.NET]

いつも拝見させてもらってます

.NETで作成したプログラムをDLL化してメニューから起動させているのですがそのプログラムに引数を渡したいと思うのですが方法がわかりません

DLL化したプログラムに引数を渡す方法はあるのでしょうか?
できればご教授お願いします

DLL化したプログラムの起動方法は以下の通りです

Try
Dim className As String = "hoge"
'// クラスを動的に作成する
Dim a As System.Reflection.Assembly = System.Reflection.Assembly.Load("hoge")
Dim t As Type = a.GetType(className)
If t Is Not Nothing Then
' プログラムの実行
t.InvokeMember("ShowDialog", Reflection.BindingFlags.InvokeMethod, Nothing, frm, New Object() {})
End If
Finally
If Not frm Is Nothing Then
frm.Dispose()
End If
System.GC.Collect()
End
End Try
■No15924に返信(あかいぬさんの記事)

題名と内容がかなり異なっているため、何をお聞きになりたいのかいまひとつ分かりませんが、とりあえずInvokeMemberメソッドのパラメータの意味についてお調べになってはいかがでしょうか。

型のメンバを動的に呼び出す
http://dobon.net/vb/dotnet/programing/typeinvokemember.html
回答ありがとうございます。内容について不適切だったことをお詫びします

通常のプログラムに引数を渡す場合は
Dim Prs As System.Diagnostics.Process = System.Diagnostics.Process.Start("excel.exe c:\test.xls")
などで"c:\test.xls"をプログラム内で
System.Environment.GetCommandLineArgs
として引き渡すことは出来ますが、DLL化したプログラムに対してはどうすれば引き渡せるのかがわかりません
もし、この方法がだめなだ起動フォームの[Tag]にでも値をセットできないものかと思案しているしだいです

何分素人ですので細かい説明があると助かります
よろしくお願いします
まず、動的に呼び出す必要性はあるのでしょうか?
「DLL化した」ということはご自身が管理しているプログラムだと思われるのですが
であれば、ソリューションにそのプロジェクトを追加してプロジェクト参照、というのではだめなのでしょうか?
#DLLObject = New DLLProject.Class1という呼び方
それともプラグインの位置付けでリフレクションを使われているのでしょうか?
■No15969に返信(あかいぬさんの記事)

呼び出すメソッドにパラメータをどうやって渡せばよいか分からないということですね?それでしたら、前の私の回答にあるリンク先をご覧いただければ分かるはずです。

DOBON.NET | プログラミング道 | プログラミング掲示板