0

我有一个用 C++ 编写的代码,它是一个 Windows 应用程序。

我想保留代码并创建另一个项目(C# 或 C++ - 而不是 C#)

这将“监听”该 Windows 应用程序中的某些函数调用。

我什至不知道从哪里开始,它只能是 dll 还是必须是可执行的,甚至是如何连接侦听器。

4

2 回答 2

0

您可以在 WinAPI 的帮助下连接到另一个应用程序,因此您的程序不需要是 DLL,但是,我认为它不允许您监听对函数的调用等。您应该有某种原始过程中的“信号者”,您可以在挂钩时捕获它...

当您看到这种情况时,这也是合乎逻辑的:由于优化等原因,编译器有时会用它们的裸特化替换内联函数;从而完全去除分支。现在,在这种情况下,你怎么知道是否发生了分支,对吧?...

也许,您可能会改变设计模式,而不是挂钩——您可能会改变项目(当然,如果可以的话)并使它们成为两个进程相互传递消息。这可以使用 API 等来完成 - 这将使您的程序特定于操作系统 - 但这就像完全重写应用程序的某些部分(主要部分)一样。

于 2012-09-28T23:07:35.720 回答
0

在托管模式下编译您的 C++ 库,然后您可以将 .dll 用于您的 c# 项目。

于 2012-09-28T21:30:51.153 回答