有没有办法监视和记录带有参数的COM调用,将其制作成特定的EXE / DLL模块,而无需向模块本身明确添加日志记录功能?我正在思考如何在Spy ++中跟踪Windows消息,但对于COM。
动机是记录用于诊断和自动测试目的的呼叫 - 例如单击客户端PC上窗口上的按钮,监控发送到服务器模块的COM呼叫,然后重播'这些电话不需要客户端PC。
如果存在这样做的工具,那就太好了。如果不是,那么它是否可以写出来,如果是这样的话?
答案 0 :(得分:2)
COM方法的调用者只需调用具有约定约定的函数。参数等,并且在调用者和被调用者之间没有中间层,除非代理/存根对正在编组调用。即使在后一种情况下,也有标准的方法来挂钩调用以进行日志记录,您可以在没有特定的排序准备的情况下执行此操作。总而言之,您需要自己处理跟踪呼叫和诊断。在可以直接记录每个感兴趣的方法的prolog,或者你可以将你的对象/接口包装到跟踪调用的自定义中间层,并将其进一步传递给预期的被调用者(例如,描述为here)。 / p>