【问题标题】:Send windows message to a console application将 Windows 消息发送到控制台应用程序
【发布时间】:2016-07-02 19:32:31
【问题描述】:

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

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

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

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

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

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

提前致谢

【问题讨论】:

  • 您始终可以从控制台应用程序创建一个不可见的窗口,并将所有这些消息发布到此窗口。

标签: c++ winapi dll console-application


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    相关资源
    最近更新 更多