- ベストアンサー
C#でDLLのメソッド作り方と戻り値の送り方
- C#のDLLの作り方とメソッドの戻り値の送り方について説明します。
- MEFを使ってC#のプログラムを作成していますが、DLLにwebBrowser1などのメインにある変数を渡すことはできません。
- DLL側のメソッドは戻り値を返すことはできますが、メインにある変数を直接使うことはできません。他の方法を考える必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>型または名前空間名 'webBrowser' が見つかりませんでした。 webBrowserではなくWebBrowserでしたかね。 大文字小文字は区別したかと。 http://msdn.microsoft.com/ja-jp/library/system.windows.controls.webbrowser%28v=vs.100%29.aspx
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
「using ディレクティブまたはアセンブリ参照が不足しています」 とエラーメッセージが出ているんだから, using ディレクティブをつかうなりアセンブリ参照を追加するなりすればいいのでは?
補足
説明不足で失礼しました。 using System.Windows.Controls; は追加しています。アセンブリ参照は何を追加していいのかよくわかりません、ご存じありませんか?
- Wr5
- ベストアンサー率53% (2173/4061)
>どのように渡せばよいのでしょうか? 引数で渡してください。 # クラスのフィールドにしてコンストラクタなりの引数で渡す。というのもありますが。 public void ナビ(webBrowser webBrowser1, int a){ webBrowser1.Navigate(http・・・・); Thread.Sleep(a); webBrowser1.Navigate(http・・・・); Thread.Sleep(a); } みたいな。
補足
それだと、DLLのなかに、webBrowser1 がないのでリビルドできなくなりませんか? とりあえず、コピペしましたが 型または名前空間名 'webBrowser' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 というエラーが検出されました。 インターフェイスに void ナビ(webBrowser webBrowser1, int a); を入れても同様のエラーが検出されます。
補足
なんとか、DLL側に↓のようなメソッドを作ることができました public void ナビ(webBrowser webBrowser1){ webBrowser1.Navigate(http・・・・); } ありがとうございます。 しかし、メイン側からこのメソッドに引数でブラウザを送る方法がわかりません。 ナビ(System.Windows.Forms.WebBrowser Form1.webBrowser1); のような形ではないかと思うのですが、どうにも入っていってくれません。 Form側で作っているwebBrowser1はどのようにDLLの引数に送ればよいでしょうか?