【发布时间】:2010-04-24 21:04:05
【问题描述】:
我希望能够在控制台应用程序和/或独立 DLL 中处理 Win32 消息。
我已经能够通过以下文章在 .NET 中完成此操作,并且它在控制台应用程序和独立 DLL 中的 C# 中运行良好
http://msdn.microsoft.com/en-us/magazine/cc163417.aspx
有没有办法用 C/C++ Win32 API 来做同样的事情?我已经尝试过 RegisterClassEx(...) 和 CreateWindow(...) 甚至将 HWND_MESSAGE 传递给 hWndParent 但问题是在创建“不可见”窗口后,可能由于缺少消息泵,消息未得到处理.
如果您有一个 DLL 入口点,消息泵会去哪里?我尝试在 DLL 中创建另一个线程并将 while(GetMesage(..)) 放在那里,但这也不起作用。
有什么想法吗?
【问题讨论】:
-
您是否将消息泵与您的 CreateWindow 调用放在同一线程上?
-
只是好奇,您需要来自控制台应用程序的哪种 Win32 消息?
-
@Gabe 我没有尝试这样做,接下来会尝试 @Romain 我正在尝试在调用 RegisterDeviceNotification 后接收 WM_DEVICECHANGE 消息。
-
谢谢加布。就是这样 WM_DEVICECHANGE 消息现在正在通过!