發表文章

目前顯示的是 2月, 2015的文章

BCB6在Windows 7上使用的問題

當你在Windows 7上裝好BCB 6.0,卻在開啟BCB主程式時出現許多錯誤訊息, 導致無法順利開啟專案與編譯程式時,就需要參考本篇的解法了! 其實會出現錯誤的原因是因為BCB會在安裝目錄下開啟一些暫存檔, 但是Windows 7中,預設對於程式直接存取C磁碟機與系統資料夾是有限制的, BCB 6.0這個在Windows 98時代就存在的產品,自然是不可能考量到這個問題, 為此,我們要幫BCB的資料夾設定成可以被存取的狀態,開啟程式的問題也就會迎刃而解。 首先,我們前往BCB的安裝目錄: Windows 7 64bit系統的話,是在C:\Program Files (x86)\Borland Windows 7 32bit系統的話,是在C:\Program Files\Borland 可以看到會有CBuilder6這個資料夾,他就是BCB的主程式與資料安裝的地方, 因此我們在這個目錄上按下右鍵,選擇"內容";接著,切換到"安全性"的分頁, 按下上方的"編輯"按鈕,開始將當前的使用者設定有讀和寫的權限。 我們"加入"目前我們這個使用者的權限,也就是登入得帳號名稱 加入使用者之後,將完全控制打勾,就可以按確定按鈕來完成設定。

Matlab讀寫CSV檔

CSV檔案的全名是 Comma Separated Values 也就是以逗號分隔的資料欄位的文字檔案 因為Excel可以直接開啟CSV檔案, 輸出實驗數據很方便 用C/C++也可以很方便的處理(最方便的還是Tab分隔的文字檔) 輸出CSV csvwrite('yourpath.csv', Data); 輸入CSV rdData = csvread('yourpath.csv'); 之前做實驗時Matlab發出警告,說csvwrite的輸出精確度不足 所以就改用dlmwrite,不過副檔名還是.csv dlmwrite('output_filepath.csv', Data, 'precision', '%.4f'); 後面兩個參數就是可以用來指定精確度的, 有指定的話就不會有科學表示法或是小數點下位數長度不一的結果

Matlab畫圖後自動儲存

這主要是做實驗時要Matlab產生曲線或曲面看結果用的, 不過用Matlab處理數據也是滿實用的功能, 但是很不希望繪圖視窗跑出來,若能直接繪圖後就存檔就好了。 %首先用figure產生一個不顯示的新繪圖視窗 h = figure('Visible', 'off'); %然後開始繪圖,要加什麼裝飾都在這裡寫好 plot(X,Y); %最後用saveas函數將figure存檔成png saveas(h, [plot_ouput.png'], 'png'); PS. 要大量繪圖的話要記得定期close all;清除Matlab開啟的figure 如果你只是要將目前畫出來的figure存檔 利用gcf=get current figure取得目前的繪圖視窗就直接將它存檔囉! %存檔 saveas(gcf, [plot_ouput.png'], 'png');

Windows XP的程式使用大於2GB的記憶體

由於使用BCB開發C++大型圖檔的處理程式時,只要配置到2GB以上的記憶體後,就會產生bad_alloc的例外, 導致無法用BCB處理超大型圖檔。但是,在大學課程中所說的是:32位元的程式能夠使用最多4GB的記憶體, 為何現在只能用2GB?  原來是因為Windows XP與較舊的系統,為了確保OS能夠維持系統運作,將單一程序的記憶體使用量限制在2GB, 如果需要使用大於2GB,就會需要關閉Windows XP的限制。 解除限制的方法分為兩個步驟 1. 設定OS的開機選項中boot.ini的參數 在「我的電腦」右鍵「內容」→切換成「進階」頁面→由上往下第三個「設定」→「編輯」→加入 /3GB的設定 2. 用工具程式對程式進行微調 利用Visual Studio 2008 所提供的工具Editbin做編輯(Express版也有提供) 開啟Visual Studio 2008的命令提示字元鍵入 editbin.exe /LARGEADDRESSAWARE "你的程式路徑" 如此一來,就能夠開始充分利用3GB(for win xp)/4GB(for win 7 64bit)的程式空間 附註:  這個 小工具可以很方便的完成第二個步驟的工作。 參考資料 如何使用 4GT RAM 微調功能 http://support.microsoft.com/kb/297812 關於Win2K Advance Server 中 boot.ini的/PAE /3GB 設定問題 http://social.msdn.microsoft.com/Forums/zh-TW/241/thread/1262d289-2282-4f63-bb2a-e8b0c954d4fc MSDN:Memory Limits for Windows Releases http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx How to make Windows XP Pro give more than 2GB of memory to Poser 6 htt

Windows編譯Libtiff

Wikipedia上寫libtiff並不是www.libtiff.org這個網址,其實講的沒錯,這個網址的軟體更新較慢。 下載原始碼,解壓縮之後將nmake.opt的內容稍微改一下,把OPTFLAGS的部分的/MD取消掉,不然BCB會不能呼叫動態函數庫 如果要支援JPEG、JBIG、LZW就要將這些套件下載回來放到nmake.opt指定的地方,然後將 # 註解的部分解除註解。 編譯方法 開啟Visual Studio 2008命令提示字元→ 進入libtiff解壓縮出來的libtiff資料夾(就是放原始碼和Header檔的東西)→ 鍵入nmake -f makefile.vc all  一般來說應該是會編譯成功。 BCB使用方法 將編譯出來的libtiff_i.lib和libtiff.dll複製到BCB專案目錄底下, 然後用BCB提供的轉lib檔的程式將lib轉為BCB可以用的lib檔案 (其實也是可以用libtiff.lib做靜態連結,可是BCB沒辦法用VC編譯出來的,都要透過轉lib的程式, 但是這支程式只會將Symbol留下,其它的程式資料就會被捨棄,所以只好給BCB使用動態連結) 然後把libtiff的.h檔也都負制到BCB專案中,在程式裡面include tiffio.h,就能使用libtiff的功能了!! 若是出現一大堆關於Tiff函數的Linker 錯誤, 1. 先檢查專案的library path和include path是否有設專案的目錄, 2. 若是1.的方法沒用,就在程式前面加上 #pragma comment(lib, "libtiff_i.lib")  建議編譯器加入libtiff進行連結, 3. 應該沒有第三個可能性了才是, 以上。