1

execdll.exeを使用してac#.netdllでメソッドを実行できるかどうかを知る必要があります。

簡単なメソッドHelloWorldを実行しようとしていますが、「このファイルの機能を参照できません」というエラーが表示されます。何か間違ったことをしているのかわかりません。

4

3 に答える 3

0

そのためにアセンブリを使用できます

Assembly.Load(byteArrayOfDll).EntryPoint.Invoke(null, null);
于 2012-04-24T06:45:43.290 に答える
0

メソッドがパブリックであることを確認します。

別のこと:静的メソッドだけがあなたの文脈で意味をなします

私は@DevilsChildアプローチに賛成です:

プロセスからDLLを実行します...

可能であれば、設計時に参照してください...

または実行時にReflectionを使用します...

静的メソッドでない場合は、Activatorを使用します(必要に応じて)

よろしくお願いします。

于 2012-04-24T07:03:05.187 に答える
0

rundll32.exeまたは少なくともexecdll.exeは似たようなものだと思います。

.NETクラスをプレーンDLLとして公開することはできません。ただし、COMDLLとして公開することはできます。したがって、必要なものを作成する唯一の方法は、.NETクラスをCOMとして公開してから、COMオブジェクトをインスタンス化して呼び出す通常のDLL(C ++、Delphiなど)を作成することです。その後、rundll32.exeまたは使用するツールからDLLを呼び出すことができます。

于 2012-04-25T09:29:52.593 に答える