MFC擴展DLL 小結

1、在DLL中啓動多線程,用_beginThread()不能使用AfxBeginThread().

2、DLL中與客戶程序之間通信可以有2中方法:

     (1)通過消息,在DLL中增加一個自定義消息,此消息的ID注意不能和客戶端程序中的消息重複。在客戶端程序中將窗口句柄傳給DLL,在客戶端寫上此消息的響應函數,這樣就可以很方便的將DLL中的數據傳輸給客戶端了。應用場合:只將數據從DLL傳輸給客戶程序,而不要返回值。

     (2)通過回調函數,在DLL中聲明一回調函數,在客戶端實現回調函數,這樣就可以調用客戶端的數據。應用場合:主要是爲了減小DLL與其他DLL之間的耦合,比如所編寫的A.DLL可能需要調用B.DLL(或更多的DLL)只是使用了幾個簡單的接口且帶返回值,或者A.DLL中與客戶端程序的界面有關。另整個客戶端程序又有很多模塊也需要調用這些DLL,如果讓每個DLL都包含這麼多DLL勢必很麻煩,故選用讓客戶端作爲B.DLL的代理,通過回調實現。從而減少DLL之間的耦合。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章