有關dll的一些知識

曾作了一個雙目視覺的程序框架,裏面只有視頻流的採集獲取圖像的幀是很實在的,而圖像處理部分,也就是真正的雙目視覺部分,是虛的。但是由於視頻流的採集用的是directshow技術,如果對程序進行編譯,就需要電腦上安裝了sdk,所以,當圖像處理的程序編好後,整個程序就都要在我的電腦上在重新編譯一次。但是,由於另一個和我合作的女孩的電腦上沒有安裝sdk,所以,只能在我的電腦上進行編譯,這是不方便的。

由於,當時在做這個程序框架的時候,就已經考慮了代碼之間的可分離問題,視頻流的採集和雙目視覺其實是用不同的類來實現的,所以,就考慮單獨把雙目視覺分開,做成一個dll。這樣,我就可以把編譯好的僅僅包含視頻流採集的程序的框架給那個女孩,那個女孩可以自己把自己的圖像處理的那部分代碼加到dll中,在她自己的電腦上重新編譯dll,用新生成的dll代替舊的dll就可以了。

把類做爲dll很簡單,只要在聲明中,符合下面這樣的模式就可以了。

class AFX_EXT_CLASS CMyClass

但是要注意的是,要用MFC擴展dll,不能用win32 dll。並且要把頭文件(也就是你要在別的程序裏面調用的函數定義所在的文件)copy一份出來,放到要調用dll的程序中,並在這個程序中include。而且要在項目的設置的屬性頁裏面的配置屬性,下面的鏈接器,輸入,附加依賴項裏面添上libname.lib。這個lib和dll是同時由你的那個dll項目編譯的時候生成的,不要忘了把它們拷貝到需要的調用它們的程序所在的文件夾中。

發佈了83 篇原創文章 · 獲贊 5 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章