關於鉤子和多線程中不能使用UpadateData的問題的解決

今天項目遇到一個關於dll中鉤子裏調用含有updatedata()的問題,老是在updatedata()出報assert的錯誤。通過在網上查找資料解決了這個問題,可能不少人都已經知道解決方法,我在這裏寫出來一方面是想和你們分享,另外一方面也是便於本身記憶和翻閱。 html

解決方案:
UpdateData(FALSE)語句用SendMessage(WM_UPDATEDATA, FALSE)替代便可. 函數

abc.h文件中:
#define   WM_UPDATEDATA   WM_USER + 5
LRESULT OnUpdateData(WPARAM wParam, LPARAM lParam); htm

abc.cpp文件中:
//函數映射 :
ON_MESSAGE(WM_UPDATEDATA, OnUpdateData)
//定義新函數:
LRESULT CProtectPage::OnUpdateData(WPARAM wParam, LPARAM lParam)
{
 UpdateData(wParam);
 return 0;
}
//傳消息給窗口:
SendMessage(WM_UPDATEDATA, FALSE) blog

原文:http://blog.sina.com.cn/s/blog_4c73004f01000a72.html 鉤子

相關文章
相關標籤/搜索