我有一个向 UI 应用程序发送消息的 DLL,DLL 发送的大多数消息都包含文本,GUI 应用程序获取消息并根据消息采取行动。
我需要创建一个使用相同 DLL 的控制台应用程序,是否有任何选项可以将消息发送到控制台应用程序,因为在控制台应用程序中我没有 Windows 消息过程。
在 GUI 应用程序中,我加载 DLL 并使用其函数之一将当前 HWND 设置为 DLL,一旦执行此操作,所有消息都会发送到我的 GUI。
我考虑过向 DLL 添加一个 bool 值,以了解该 DLL 是从 GUI 界面还是从命令行控制台应用程序调用的,但这涉及 DLL 代码中的大量更改。
如何获取消息或将消息重定向到控制台应用程序(命令行界面)?
DLL、GUI 和控制台应用程序使用 win32 API 以 C/C++ 进行编码。
提前致谢
最佳答案
您可以在控制台应用程序中创建窗口,就像在标准 Windows 应用程序中一样。如果您创建 message only window (在调用CreateWindow()
时将窗口的父窗口设置为HWND_MESSAGE
),那么它将不可见,但仍然能够接收Windows消息。您需要在控制台应用程序中的某个位置运行标准 Windows 消息循环,以便将消息分派(dispatch)到您的窗口。
关于c++ - 向控制台应用程序发送 Windows 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36043832/