Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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
使用进程内服务器导出进程外COM服务器的子集_Com_Marshalling - Fatal编程技术网

使用进程内服务器导出进程外COM服务器的子集

使用进程内服务器导出进程外COM服务器的子集,com,marshalling,Com,Marshalling,我实现了一个在服务中实现的进程外COM服务器。我不希望其他应用程序访问COM服务器中的所有功能,因此我开发了一个进程内服务器DLL,它可以与进程外服务器进行通信 因为我不希望直接访问out-of-proc COM服务器中的接口,所以我没有将类型库嵌入服务,所以我认为我可以使用import并通过TLB访问COM服务器。然而,当我尝试在in-proc服务器中创建服务中实现的类的实例时,我得到了一个E_-NOINTERFACE。我想这是由于编组,但我不知道如何克服这一点 关于如何从进程内服务器与进程外

我实现了一个在服务中实现的进程外COM服务器。我不希望其他应用程序访问COM服务器中的所有功能,因此我开发了一个进程内服务器DLL,它可以与进程外服务器进行通信

因为我不希望直接访问out-of-proc COM服务器中的接口,所以我没有将类型库嵌入服务,所以我认为我可以使用import并通过TLB访问COM服务器。然而,当我尝试在in-proc服务器中创建服务中实现的类的实例时,我得到了一个E_-NOINTERFACE。我想这是由于编组,但我不知道如何克服这一点


关于如何从进程内服务器与进程外服务器通信而不公开进程外服务器的接口详细信息,有什么想法吗?

我不确定这将如何有助于使用接口,但typelib就是其中之一。另一种非常简单的方法是代理/存根(proxy/stub)——一个单独的in-proc-COM服务器中的一组代码,一旦在Windows注册表中注册,它将自动进行编组。同样,我不确定这将如何帮助conseal接口,但它看起来比只向任何使用OLEView的人公开接口的类型库更隐蔽。

我不确定这将如何帮助conseal接口,但是typelib就是其中之一。另一种非常简单的方法是代理/存根(proxy/stub)——一个单独的in-proc-COM服务器中的一组代码,一旦在Windows注册表中注册,它将自动进行编组。同样,我不确定这将如何帮助conseal接口,但它看起来比只向任何使用OLEView的人公开接口的类型库更隐蔽。

除了我可能的错误答案之外,我问了以下问题,我使用了proxy/stub方法。我读了你的问题,这也是我感兴趣的:代理/存根是否公开接口?我看到你回答了自己的问题,但答案还不清楚。除了我可能的错误答案之外,我问了以下问题,我使用了代理/存根方法。我读了你的问题,这也是我感兴趣的:代理/存根是否公开接口?我看到你回答了自己的问题,但答案还不清楚。你说的提前装订是什么意思?我该怎么做?我使用ATL简单对象向导创建新的COM对象。@Mark Zimmers:您声明的COM接口继承自IUnknown而不是IDispatch,并且不将类型库嵌入资源中。客户端程序使用Visual C++导入指令来研究接口,生成接口的C++等价物。完成-因为除了构建过程之外没有任何类型库,没有人能在没有彻底的反向工程的情况下找到接口。@Mark Zimmers:一旦你有任何具体问题,你应该在这里问一个问题。早期绑定是什么意思?我该怎么做?我使用ATL简单对象向导创建新的COM对象。@Mark Zimmers:您声明的COM接口继承自IUnknown而不是IDispatch,并且不将类型库嵌入资源中。客户端程序使用Visual C++导入指令来研究接口,生成接口的C++等价物。完成-因为除了构建过程之外,任何地方都没有类型库,没有人能在没有彻底的反向工程的情况下找到接口。@Mark Zimmers:一旦你有任何具体问题,你应该在这里问一个问题。