假设我有一个 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,那么做我想做的最简单的方法是什么?
编辑:它还需要与 Linux 共享库一起使用,例如 ProxyLib.GetRemote("192.168.10.12100", "mything.so")