曾作了一個雙目視覺的程序框架,裏面只有視頻流的採集獲取圖像的幀是很實在的,而圖像處理部分,也就是真正的雙目視覺部分,是虛的。但是由於視頻流的採集用的是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項目編譯的時候生成的,不要忘了把它們拷貝到需要的調用它們的程序所在的文件夾中。