C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 163 を表示中)
■94369 / )  Re[2]: 作成したDLLアプリケーションの呼出し
□投稿者/ VB初心者 (3回)-(2020/04/06(Mon) 16:36:46)
No94368 (魔界の仮面弁士 さん) に返信
> ■No94367 (VB初心者 さん) に返信
>>①作成したDLLは呼出元のアプリケーションから参照設定で登録行う形でよいか
>
> はい、そのような形となります。
> たとえば、WinForms ではなくコンソール アプリケーションなプロジェクトから
>   System.Windows.Forms.MessageBox.Show("Hello")
> を実行する場合、コンソール アプリケーションのプロジェクトに対して、
> System.Windows.Forms.dll を参照設定に加える必要がありますが、それと同じです。
>
>
>>②呼出元でDLL内に設定した変数を参照して値をセット可能か
>
> できますが、設計上好ましくありません。
>
> 外部から変数を直接読み書きするのではなく、DLL 側で提供した Form あるいはクラスにて、
> その変数を「プロパティ」として公開するようにします。
>
> あるいはコンストラクタやメソッドの引数などを通じて値をセットしても良いでしょう。
> (InputBox や MsgBox 関数も、引数で情報を受け渡す設計になっていますよね)
>
>
>>③そもそもどのように呼び出せばよいのか
>
> 画面があるのなら、その DLL には恐らく Form が既にあるでしょうから、
> それが Public Class であるのなら、参照設定した側からもそのまま呼び出せます。
>  Dim f As New Form1()
>  f.Show()
>
> ただし、DLL のプロジェクトのプロパティで、[アプリケーション]タブの
> [ルート名前空間]が空っぽで無かった場合には、呼び出し側は
>  Dim f As New DLLの名前空間.Form1()
> のように記述する必要があります。

①③に関しては問題なさそうですが、②に関して、
「DLL 側で提供した Form あるいはクラスにて、その変数を「プロパティ」として公開」の部分を調べているのですが、
DLL画面側でどのように定義すれば、EXE側で参照が行えるのか、がよくわからない状態です。
大変お手数ではありますが、ご教授いただければと思います。
返信 編集キー/


管理者用

- Child Tree -