将窗口消息发送到控制台应用程序

Send windows message to a console application

本文关键字:控制台 应用程序 窗口 消息      更新时间:2023-10-16

我有一个向 UI 应用程序发送消息的 DLL,DLL 发送的大多数消息都包含文本,GUI 应用程序获取消息并根据消息进行操作。

我需要创建一个使用相同的 DLL 的控制台应用程序,是否有任何选项可以将消息发送到控制台应用程序,因为在控制台应用程序中我没有 Windows 消息过程。

在 GUI 应用程序中,我加载 DLL 并使用它的功能之一将我当前的 HWND 设置为 DLL,一旦我这样做,所有消息都会发送到我的 GUI。

我想过向 DLL 添加一个布尔值,以了解 DLL 是从 GUI 界面还是从命令行控制台应用程序调用的,但这涉及 DLL 代码中的大量更改。

如何获取消息或将消息重定向到控制台应用程序(命令行界面)?

DLL、GUI 和控制台应用程序使用 win32 API 在 C/C++ 中编码。

提前致谢

可以在控制台应用程序中创建窗口,就像在标准 Windows 应用程序中一样。如果创建仅消息窗口(将窗口的父级设置为HWND_MESSAGE调用CreateWindow()时),则它将不可见,但仍能够接收 Windows 消息。您需要在控制台应用程序中的某个位置运行标准 Windows 消息循环,以便将消息调度到窗口。