Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从VB.Net Winforms应用程序公开COM接口_Vb.net_Com - Fatal编程技术网

从VB.Net Winforms应用程序公开COM接口

从VB.Net Winforms应用程序公开COM接口,vb.net,com,Vb.net,Com,我想知道是否可以通过Winforms可执行文件公开COM接口,而不必创建类库DLL?我有一个小型交互式应用程序,希望用户能够使用以下代码从VBScript和其他语言调用: 设置USBDAQ=CreateObject(“USBDAQ.Control”) USBDAQ.TakeSample() 我可以创建一个单独的类库,并使用一种IPC形式与主应用程序通信,但我不想增加额外的复杂性。我知道这种方法可能有可靠性方面的优势,但它不必特别健壮。多亏了Hans Passant的评论,我很快发现.NET确实没

我想知道是否可以通过Winforms可执行文件公开COM接口,而不必创建类库DLL?我有一个小型交互式应用程序,希望用户能够使用以下代码从VBScript和其他语言调用:

设置USBDAQ=CreateObject(“USBDAQ.Control”) USBDAQ.TakeSample()


我可以创建一个单独的类库,并使用一种IPC形式与主应用程序通信,但我不想增加额外的复杂性。我知道这种方法可能有可靠性方面的优势,但它不必特别健壮。

多亏了Hans Passant的评论,我很快发现.NET确实没有很好的支持来实现COM进程外服务器。经过研究,他的WCF或远程处理建议似乎最适合大多数应用


因为我的需求非常简单,所以我最终使用System.IO.Pipes,因为命名管道很容易从VBS向一个方向使用,而且我只需要向一个方向发送简单的请求。

多亏了Hans Passant的评论,我很快发现.NET确实没有很好的支持实现COM进程外服务器。经过研究,他的WCF或远程处理建议似乎最适合大多数应用


因为我的需求非常简单,所以我最终使用System.IO.Pipes,因为命名管道很容易从VBS在一个方向上使用,而且我只需要在一个方向上发送简单的请求。

您要求的是进程外服务器,.NET对此没有很好的支持。没有合适的方法来注册服务器和发布类工厂。通常的方法是COM+托管,但afaik不允许UI。您最好使用WCF或远程处理来完成此操作。谢谢Hans,这让我不用再看下去了。由于需求非常简单,我决定使用System.IO.Pipes,因为命名管道很容易从VBS使用。WCF似乎是一个很好的选择,我会在将来记住,对于任何需要更强大/复杂的东西。@Hans Passant-我在这里发布问题时是很新的,但你的评论回答了我的问题,如果你想发布答案,我会标记为已接受,因此问题结束。否则,如果您不愿意,我将等待一周左右,然后按自己的回答发布。您要求的是进程外服务器,.NET对此没有很好的支持。没有合适的方法来注册服务器和发布类工厂。通常的方法是COM+托管,但afaik不允许UI。您最好使用WCF或远程处理来完成此操作。谢谢Hans,这让我不用再看下去了。由于需求非常简单,我决定使用System.IO.Pipes,因为命名管道很容易从VBS使用。WCF似乎是一个很好的选择,我会在将来记住,对于任何需要更强大/复杂的东西。@Hans Passant-我在这里发布问题时是很新的,但你的评论回答了我的问题,如果你想发布答案,我会标记为已接受,因此问题结束。否则,如果你不愿意的话,我会等一个星期左右,然后按我自己的回答发帖。