2013-05-04 80 views
0

比方说,我有样功能的C DLL:如何在另一台机器上调用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”)

+1

那么,为什么你不使用DCOM呢? – 2013-05-04 21:23:17

+0

我也需要它在Linux上工作。增加问题。 – 2013-05-04 21:31:17

+0

CORBA,然后。你应该有一些工具包来管理你的身份验证。 – 2013-05-04 21:40:33

回答

1

如果您需要它在不同的操作系统上工作,您将很难以非常通用的方式进行操作。你可以在这个维基百科文章中搜索“平台无关的API”:Inter-process communication得到一个想法。大部分你会发现重量级。

一种简单的方法是编写一个专门的HTTP REST服务器(可能使用JSONXML作为交换格式)。它具有简单的优点,您可以使用任何带有体面的HTTP堆栈的操作系统(包括手机)访问它。

相关问题