2016-03-16 136 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消息循環,以便將消息分發到您的窗口。

相關問題