@egtraイグトランスの頭の中(のかけら)ActiveBasicを中心にプログラミングの話をぼちぼちと。Phone.コメントなしRegisterComDllメソッドを題材としていますが、一般的にリフレクションを使って動的にメソッドを呼び出す方法についての話と考えられます。本題、RegisterComDllでもなんでも良いのですが、その動的なメソッド呼び出しのコード、なんかいけてないと思うのです。});とりあえず、var使いましょう。});さて、メソッド呼出をデリゲート経由にしてやろうかと考えていたところ、Delegate.CreateDelegateにちょうどよいオーバーロードを見つけました。型名とメソッド名(文字列)を渡すとそいつを呼び出すデリゲートを作るというものです。Delegate.CreateDelegateはMethodInfoを渡すものばかりと思っていたら、文字列でメソッドを指定できるものがあったというわけです。"RegisterComDll");あとは、Delegate.CreateDelegateのところで、引数・戻り値のキャストの2度Func<...>を書かなければならないことをジェネリックでなんとかしてやるのもよいでしょう。以下余談、戻り値がuintなのはごにょごにょして覗いてみたり、あるいは、dynMethod.Invokeの戻り値(object型)をデバッガで見たりした結果からです。この値はいかにもHRESULTっぽい値です。なれば、当然Marshal.ThrowExceptionForHRを使おうと考えるわけです。}しかし、これはできませんでした。ThrowExceptionForHRメソッドには、SecurityCriticalAttributeが付いているので我々アプリ開発者の手には扱えないのです。Marshal.GetExceptionForHRも同様に駄目です。適当な例外クラスを作り、ret.ToString(“x”)を使ってメッセージ文字列を作るという程度でお茶を濁すしかないでしょう。コメントをキャンセルメールアドレスが公開されることはありません。WPThemes.Info。