我有一个用c ++编写的代码,它是一个Windows应用程序。
我想保留代码并创建另一个项目(C#或C ++ - 而不是C#)
将“监听”该Windows应用程序中的某些函数调用。
我不知道哪里开始,它只能是dll还是必须是可执行的,甚至是如何连接监听器。
答案 0 :(得分:0)
以托管模式编译C ++库,然后可以将.dll用于c#项目。
答案 1 :(得分:0)
你可以在WinAPI的帮助下挂钩到另一个应用程序,所以你的程序不需要是一个DLL,但我认为它不允许你监听函数的调用等。你应该有在原始过程中某种“信号器”,你可以在钩子上捕获......
当你看到这种情况时,这是合乎逻辑的:由于优化等原因,编译器有时用它们的专门化替换内联函数;从而完全去除分支。现在,在这种情况下,你怎么知道分支是否发生,对吧?
也许,您可以更改设计模式,而不是挂钩,您可以更改项目(如果可以的话),并使两个流程相互进行消息传递。这可以使用API等来完成 - 这将使您的程序特定于操作系统 - 但这就像完全重写应用程序的某些部分(主要部分)。