vc++ GetMessage 小知识

背景:

自己其实很少用到GetMessage,除了win32写窗口程序基本用不到,要么就用MFC去了,虽然老,但简单。

今天远程注入DLL,然后生成窗口,发现生成窗口会立马退出,后面发现自己没有写消息循环消息,但我发现我另外一个DLL 也没有写但可以正常运行。

 

过程:

于是google :

Type: HWND

A handle to the window whose messages are to be retrieved. The window must belong to the current thread.

简单说GetMessage  只能取当前线程的队列里面的消息。

我现在解析一下为什么2个DLL一个可以正常使用,另外一个不能正常使用,因为一个DLL 是被c# 程序直接加载运行,那么就是主线程中,因为c# 主线程有他自己消息循环,所以这个DLL就不用写了。另外一个DLL 是远程注入,那么单独一个线程,没有消息循环,所以必须自己写消息循环。。

 

结论:

只有现存代码才更好估计开发时间,不然很容易出现问题,导致自己开发时间拉长。

发表评论

电子邮件地址不会被公开。 必填项已用*标注