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