Windows消息似乎是在Windows操作系统上通知应用程序的好方法。它实际上运作良好,但少数问题来了,以我的脑海:发送和接收Windows消息
如何指定结构化数据到LPARAM的SendMessage函数例程(如许多消息代码呢)?我的意思是......当然这个参数是一个指针,但是过程如何访问它呢?也许是由发送/接收消息的进程加载的DLL分配的?
是否有可能共享消息结构参数(发送者和接收者之间)?他们被编组在之间发送操作和查看操作?如果是这种情况,可以通过修改结构化参数来从调用者返回数据?这可能对SendMessage有用,因为它是同步执行的,而不是PostMessage例程。
其他疑惑...
从什么PostMessage的和SendNotifyMessage的区别是什么?
在应用程序在处理消息泵时调用SendMessage到自己的情况下,是否可能导致死锁?
如何在共享DLL的堆上分配内存? – Luca 2010-06-29 19:59:12
怎么样?我提到过它。我还提到它不安全,因为dll和共享内存段可能会在每个进程的不同基地址中加载 - 因此接收代码必须知道这一点 - 这使得它不像通常的第3种方法那样安全派对代码。 – 2010-06-29 20:09:30
@Luca:一般来说,DLL使用其宿主进程的堆。因此,共享DLL并不意味着共享堆。 – MSalters 2010-07-01 14:34:24