2016-03-16 105 views
1

我有一个DLL将消息发送到UI应用程序,DLL发送的大部分消息都包含文本,GUI应用程序获取消息并根据消息采取行动。发送窗口消息到控制台应用程序

我需要创建一个控制台应用程序,使用相同的DLL,是否有任何选项来获取消息到控制台应用程序,如在控制台应用程序中我没有Windows消息过程。

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

我曾考虑给DLL添加一个布尔值,以知道DLL是从GUI界面还是从命令行控制台应用程序调用,但涉及DLL代码中的很多更改。

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

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

在此先感谢

+4

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

回答

5

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

相关问题