我希望通过RPC与Windows进程通信。我要与之通信的应用程序是使用VisualStudio2008在C++中开发的。该应用程序通过idl文件提供其接口(interface),然后使用Microsoftmidl工具进行编译。此应用程序已经开发,无法修改。我希望通过我用Java开发的第二个应用程序与该应用程序进行通信。Windows应用程序提供的功能是否与RPC的任何Java实现兼容?根据我在MSDN上的阅读,Window应用程序提供的RPC是DCE兼容的。除了12年以上的几篇讨论MSjvm的文章外,我没有成功找到有关Java中DCE/RCP的详细信息。我也没有成功使用idl从Wind
我希望linux主机上的一个应用程序从VM中的Win7x64上的应用程序调用过程。我猜VM在linux主机上运行并不重要,因为它应该使用套接字。如何处理这个计划?互联网上有这方面的图书馆吗?编辑:好吧,我把它们都看了一遍。XMLRPC似乎是SOAP的某种前身。在我看来,Prototbuf似乎专注于大型对象的轻松序列化。所以我的决定落在了SOAP上。但现在我正在寻找一个好用的c++绑定(bind)。我阅读了apacheaxis2手册的几页,但它的其他一切都很好用,而且无论如何都是C语言。在我的具体情况下的另一个问题是:发送一些文本数字和参数来识别要调用的过程并以文本形式回复是否更容易,因
我正在尝试用midl编译我的arith.idl文件。我正在运行Windows7专业版。这是我在powershell提示符下启动的命令:PS>'C:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v7.0A\Bin\midl.exe'.\arith.idlMicrosoft(R)32b/64bMIDLCompilerVersion7.00.0555Copyright(c)MicrosoftCorporation.Allrightsreserved.64bitProcessing.\arith.idlmidl:commandlineerrorMIDL100
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我知道很多人问这种问题,但我有一组要求:1.能够在Windows上使用VisualStudio进行编译开发。2.有点现代——异步/线程,干净。3.C++我看过thrift、messagepack,甚至protobuf+RPC。它们在Windows中都存在大量问题。仅供引用-我不是专业程序员,所以要求我将过时的补丁应用到未经测试的代码是一个很大的要求。我知道
我的应用程序使用MicrosoftRPC进行进程间通信。当两个进程在同一台机器上运行并且一个进程试图调用声明为(IDL符号)的方法时:error_status_trpcMethod([in]pipebyteparameter);此调用因RPC_S_CANNOT_SUPPORT(“不支持请求的操作”)而失败,并且永远不会到达服务器端,并且永远不会调用所提供管道的push()/pull()原语。这仅在使用ncalrpc协议(protocol)时在Vista上重现,否则不会重现。我还在事件查看器日志中发现了以下内容:应用程序(“我的程序exe文件名”\service)(PID:344)正在使
我试图找出在Windows7中的特定ALPC端口上使用的消息,并且由于似乎没有任何地方记录端口消息,只有实际端口本身,我想监听某些端口并查看发送到该端口的消息。有人知道如何做到这一点吗? 最佳答案 ALPC调用旨在快速,因此没有很多拦截点。你最好的选择是:启用ETW内核日志记录并使用ALPC监控消息流类(强烈推荐)与Detours打交道图书馆。我不推荐这样做,因为它是一个全局解决方案,并且不会让您查看特定端口。如果您需要部署解决方案,那就更糟了。 关于windows-查看通过ALPC端口
请问有谁知道rpcrt4.dll中的NdrClientCall2()函数在代码中是如何调用或者如何使用的?我们已经浏览了MSDN帮助-http://msdn.microsoft.com/en-us/library/aa374215(VS.85).aspx,但没有得到任何示例/样本如何使用此功能。请提供帮助。谢谢。 最佳答案 通常您永远不会直接调用它-它需要以一种几乎无法管理的特殊方式准备大量参数。相反,您使用IDL来指定您的RPC接口(interface),使用MIDL对其进行编译,这将为您提供一个客户端代理,该代理可以使用适当的参
我正在寻找一个RPC库,它允许我在另一个进程(在Windows上)中调用一个对象的成员函数。我目前遇到的问题是一些服务器端对象已经存在并且有多个实例。服务器应该能够将指针/标识符传递给实现代理的客户端,然后将调用定向到远程对象实例。所以我基本上想要的是这样的:Client:TestProxytest=RemoteTestManager.GetTestById(123);test.echo("bla");其中Test的实例已经存在于服务器上,并且RemoteTestManager是客户端在另一个rpc调用中获得的服务器上的管理器类。此外,它最好在命名管道上运行,因为同一台机器上可以有多个
有没有办法从服务器端检查RPC连接的状态?我正在寻找一种方法来检测来自客户端的连接是否丢失,无论是客户端崩溃还是其他连接问题。 最佳答案 使用ContextHandles用于管理特定客户端调用之间的服务器状态。RPC使用keep-alive来检测客户端断开连接,并在客户端断开连接时执行上下文句柄中断例程。 关于c++-在Windows上从服务器端检测RPC连接丢失,我们在StackOverflow上找到一个类似的问题: https://stackoverflo
在我的COM组件中,我需要将所有错误转换为最合适的HRESULT值。目前,如果我调用一些RPC接口(interface)方法(我调用一个MIDL生成的stub,它又调用NdrClientCall2())并且调用失败,我将返回E_FAIL,这不是很方便。有所谓facilityinHRESULT.我可以用这个吗?我尝试执行以下操作:HRESULTRpcStatusToHresult(RPC_STATUSstatus){if(status这会正确地将RPC_STATUS转换为有意义的HRESULT吗? 最佳答案 您的RpcStatusTo