用mfc和wavein函式做了一個錄音軟體,后來經理又讓我把該程式改成dll檔案給別人呼叫。我第一次接觸dll,查了好些資料,得知dll還分win32和mfc,實作方式也有__declspec(dllexport)和.def,呼叫方式還分靜態動態、隱式和顯式,看得我眼花繚亂。目前只能根據自己的理解來嘗試去做。
我新建了一個win32 dll工程,查詢得知win32 dll不支持mfc類,于是就把mfc錄音軟體里面的幾個核心函式(開始錄音,暫停錄音,保存錄音)單獨從對話框類里抽離出來做成幾個函式,原來對話框類的幾個成員變數由于都要被這幾個函式呼叫,所以我就都做成函式的引數由呼叫該函式的程式員提供(這樣做的話,有的函式要有五六個引數,不知道有沒有其他方法),之后又遇到問題了,之前錄音軟體里有個訊息函式onMM_WIM_DATA處理MM_WIM_DATA訊息,就是當一個小的快取區滿的時候由系統自動呼叫來處理快取區。然后做成dll之后我不知如何處理這個函式,別人呼叫“開始錄音”函式錄音時,快取滿了肯定也會觸發該訊息,但是我像普通函式一樣宣告這個訊息函式的時候,編譯又會報錯,實在不知該如何處理。求各位高手指點,感激涕零!
uj5u.com熱心網友回復:
呼叫頁面是知道何時該處理這個訊息的吧,那就把訊息的處理封裝到DLL中,然后呼叫者來呼叫這個函式即可。
你把訊息定義在DLL中,請問DLL如何接收呢?
uj5u.com熱心網友回復:
是的,最后像你說的那樣都單獨封裝成獨立的函式,給別人呼叫,我測驗的時候寫了個測驗程式,剛開始寫的控制臺程式,結果不知道怎么處理MM_WIM_DATA訊息,因為沒有對話框產生這個訊息。我又寫了個mfc對話框程式呼叫,但是最后還是有錯誤不知怎么改。郁悶。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98767.html
上一篇:【2020CCPC網路賽】1005 Lunch(HDU6892)
下一篇:有人會做這幾個題目嗎
