Erlang与COM对象的交互

时间:2016-03-21 05:40:42

标签: com erlang

有没有人知道如何使用Erlang与COM对象进行交互?我找到了允许它的彗星库,但看起来这个代码不再存在于OTP包中。

我考虑用另一种语言(如C ++或C#)编写代码,并通过端口与Erlang通信,但不确定这种方法是否最方便。

1 个答案:

答案 0 :(得分:3)

是的,erl_comcomet)是not supported since R9B

  

Comet,Erlang的COM客户端(REMOVED)

     

Comet应用程序已从产品中删除,因为我们目前   没有资源来维护它。我们计划将其提供给   开源网站。它仍适用于Windows NT 4,但有   Windows XP上的问题。

我们现在有18.3(旧版本格式的R18B03)。它使用linked_in driver进行通信。这是与外部代码进行通信的一种非常有效的方式,但dangerous

  

警告

     

错误的链接驱动程序会导致整个Erlang运行时系统泄漏内存,挂起或崩溃。

有关详细信息,请参阅Interoperability Tutorial User's Guide。主要有四种选择:

  1. Ports - 通过stdin / stdout进行通信的分叉进程。
  2. Port Drivers(链接驱动程序) - 类似于Ports但在模拟器内存​​空间内。流量控制速度快,但危险。
  3. C/Java Nodes - 用外语编写的服务器就像Erlang集群中的节点一样。使用Erlang分发协议。
  4. NIFs - 与链接驱动程序相同的可靠性缺点,但API更简单。
  5. 如果可靠性存在于您的担忧中,则端口和C / Java节点是首选方式。当性能最重要时,NIF是首选。链接驱动程序是传统的,特别适用于NIF API不够强大的用途。

    当然,您可以使用Standard Protocols与服务器进行通信。