タグ

.netとdllに関するrikima3132のブックマーク (3)

  • アセンブリ内のすべての型を取得する

    アセンブリ内のすべての型を取得するまず、Assemblyオブジェクトを取得する基的な方法について説明します。アセンブリのファイル名を指定してアセンブリを読み込むには、Assembly.LoadFromメソッドを使用します。アセンブリの完全限定名によりアセンブリを読み込むには、Assembly.Loadメソッドを使用します(アセンブリの完全限定名およびその取得方法については、ヘルプの「アセンブリ名」をご覧ください)。さらに、現在のコードを実行しているアセンブリはAssembly.GetExecutingAssemblyメソッドで、アプリケーションドメインに読み込まれているすべてのアセンブリはAppDomain.GetAssembliesメソッドで取得することができます。 次にこれらを使ってAssemblyオブジェクトを取得する例を示します。 'Imports System.Reflecti

    アセンブリ内のすべての型を取得する
  • 全ては時の中に… : 【VB.NET】動的にDLLファイルをロードする

    2007/11/3022:31 【VB.NET】動的にDLLファイルをロードする VB.NETでは、DLL等のライブラリを利用する場合、参照設定を行って静的にロードするファイルを指定するのが一般的である。しかし、C言語等のようにプログラム中にロードするファイルを指定したい場合もある。 (プラグインを読み込むタイプのプログラムを作成する等) この技法を使う機会があるかは不明であるが、参考までに実装方法について説明する。 但し、一番単純な実装方法のサンプルなので、実用性は低い。 来の用途を考えると、DLLが増えても体となるプログラムの改修を必要としないのが理想である。(バージョンアップやバグフィックスの場合には、体の改修も必要となるが…) そのため、DLLのインターフェースを統一し、呼び出し方法を統一する等の工夫が必要となる。 以下、サンプル。 《呼び出される側のプログラム(DLL)》

  • 動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成してみよう。 - Bug Catharsis

    C#で動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成 動的にDLL(ライブラリ)をロードするというシナリオは、意外と要求されることが多いのではないかと思います。 利用する関数があらかじめ明確になっているのであれば、そのまま直実装でも構わないのですが、 それが明確になっていないような場合、あるいは都度動的に変化するというような場合では、一筋縄にはいきません。 そんな場合は、P/Invokeなdelegateについても動的に生成することを検討してみるとよさそうです。 具体的な方法を簡単に説明します。まずWinAPIのLoadLibrary関数でDLL(ライブラリ)をロードします。 続きまして、アセンブリを動的に生成し、またそのアセンブリに動的にクラスを作成します。 その動的に作成したクラスについて、読み込んだDLLから関数ポインタを積んだメソ

    動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成してみよう。 - Bug Catharsis
  • 1