close
1.我的BCB 是要開啟哪一種檔案? A:可以用[file] -> [new] -> [unit],產生新的UNIT,將副程式加於最下方, 再將整個程式用下面的方式包起來,以避免重覆include,不同檔案使用不 同的INCLUDEDFLAG。 #ifndef INCLUDEDFLAG1 #define INCLUDEDFLAG1 .....整個程式 #endif 2.副程式要否要先獨立編譯? A.在主程式include到的檔案,就會自動編譯 3.有基本步驟ㄇ? 簡單介紹可以嗎? 小範例-開啟影像raw data #ifndef FILEFLAG #define FILEFLAG //-------------------------------------------------------------------- #include #include #include #pragma hdrstop //-------------------------------------------------------------------- #pragma package(smart_init) //-----------------Open Raw Data File--------------------------------- void openfile(char* filename,int width,int height,byte** img); //加這一行宣告很有用. //--------------------Open File--------------------------------------- void openfile(char* filename,int width,int height,byte** img) { int i,filesize,x=0,y=0; FILE *fp; byte *data; fp=fopen(filename,"rb"); filesize = width*height; data=(byte*)malloc(sizeof(byte)*filesize); fread(data,1,filesize,fp); for(i=0 ; i { img[y][x++]=data; if(x==width) { y++; x=0; } } free(data); fclose(fp); } //---------------End openfile----------------------------------------- #endif 為什麼要將副程式獨立出來呢?我個人覺得是為了讓程式共享,假設用bcb寫的 程式,寫得很精彩,數千行程式擠在bcb的主程式,當別人要引用你的程式時,還要 把程式找出來,複製貼上,有時程式碼還用到bcb的元件,如果別人用的又不是bcb, 程式遇到bcb元件就沒輒囉,還要另外想辦法更改,實在是麻煩的一件事。 所以程式盡量寫得不依賴應用程式(software independent),像影像處理的演 算法filter,sobel,DCT,wavelet就經常會被使用,如果把它們都寫成一個檔案來 引用,寫一支新的程式就不用重新再編寫這些演算法,直接include就可以囉。不 是很方便嗎?的程式就不用重新再編寫這些演算法,直接include就可以囉。不是很方便嗎? |
全站熱搜
留言列表