次のような関数を備えた C dll があるとします。
void beep();
char* foo(char** whatever);
ここで、この dll をあるマシン (サーバー) に置き、別のマシン (クライアント) から呼び出すことができるようにしたいと考えています。クライアントは C# にすることができますが、dll (およびプロキシ サーバー) は通常の C である必要があります。理想は、クライアントで次のようになります。
MyDllAccess remote = ProxyLib.GetRemoteDll("192.168.1.10:12100", "mydll.dll");
remote.execute("beep"); // other machine beeps (uses GetProcAddress to find function)
COMなどを再発明していることは知っていますが、...方法はありますか?そうでない場合は、どうすればいいですか? 既に dll を持っているので、私がやりたいことを行う最も簡単な方法は何ですか?
編集: ProxyLib.GetRemote("192.168.10.12100", "mything.so") などの Linux 共有ライブラリでも動作する必要があります。