[C/C++]陣列參數傳遞

用C寫程式的最大缺點就是,沒有內建一堆好用的 library 讓你去 import 並且直接地使用,所以,C/C++的許多開發者都要自幹或者是去網路上找一些能解決目前所碰到的問題的程式碼來用,或者是自幹一個。

先前因為學校課程的關係,寫了很多的 Java ,結果導致我使用 C 語言時產生一些困擾。因為Java幫開發者寫好了非常多的方法與物件,開發者可以直接引用、建立好物件並打上相應的方法名稱後便可以直接地使用,相當方便。

不過單晶片微控制器的開發上,目前來講很少有人採用java 來開發,一來是缺少相應的編譯器,二來是它過於笨重,不適合在低時脈的微控器上執行。所以,單晶片的開發還是繼續使用有點過時但萬能的C語言(少數採用C++)來開發。

今天,要來向各位介紹的是,如何把陣列當作一個參數在函式中傳遞。

繼續閱讀 “[C/C++]陣列參數傳遞”

C#.Net PDF convert to Image

開始之前,需要安裝 Adobe Reader X Pro 以上的版本,安裝完成後去資料夾底下搜尋『Acrobat.dll

開啟Visual Studio專案,並將『Acrobat.dll』加入參考

接著加入『Microsoft.VisualBasic

將以下程式碼貼上去就可以使用了,註解都幫各位寫好了,想知道原理看參考文獻或是註解文字即可

繼續閱讀 “C#.Net PDF convert to Image”

程式設計條件判斷之章,switch…case。

switch…case這個條件判斷的用法,就如同他的名字一樣的直覺。

switch,中文有切換的意思,而case則有案例的意思。它的運作原理跟 if 非常相似,不過在程式中,閱讀起來有時比if來得簡單也更容易懂,尤其當判斷的結果需要很多種變化時,switch…case就是個不錯用的流程控制語法。

這是一個簡單的switch…case例子: switch case

(來源:Cherng)

不對,這個才是:

繼續閱讀 “程式設計條件判斷之章,switch…case。”

Wii Remote Projects 用Wii的搖桿玩出不一樣的世界 1/2。

Wii Remote Projects is one of Johnny Chung Lee’s projects. 我是有一次在網路上逛到的,雖然這東西有點久,不過對我來說還是挺新鮮的一件事情。 那些影片以及他在TED上的演講都讓我印象深刻,邊看邊驚呼的我,當下決定一定要買一支Wii搖桿回來玩以及測試。 就在一個多星期以前,我入手了這支夢寐以求的Wii搖桿。

挑的是黑色款,因為我還滿喜歡那個鋼琴烤漆的質感,哈!

一支799,不算貴。

Wiimote如何運作?

Wiimote即Wii Remote,也就是那隻搖桿(遙控器)。它的運作原理很有趣,它是利用Bluetooth v1.2與Wii主機連結並且傳送與處理資訊。 內部有一個三軸加速度感測器,前端有一個高靈敏的紅外線攝影機。

它就是利用這個和內部的加速度感應器去知道玩家的位置以及姿勢等等,然後再將這些訊息傳給主機,這時的主機會根據遊戲程式來處理這些資訊。 如果想要知道更多詳細資訊可以參考英文版的Wiki,裡面的資料非常詳盡,包括第三方應用等等的。

如何與電腦連接?

剛剛提到,Wii Remote是透過Bluetooth與Wii主機連線,換句話說,只要我們的電腦有藍芽的接收器,我們就能接收到Wii Remote的資訊,所以想要嘗試看看,請準備一個藍芽接收器,如果電腦有內建那就不用準備啦! 準備妥當之後,請同時按下Wii搖桿上的1、2按鍵,這時底下四個LED燈會不斷閃爍,如果沒有閃爍請檢查你有沒有裝上電池。

然後開啟電腦的藍芽程式,點下加入裝置。

找到Nintendo RVL-CNT-01這個名稱的裝置。

連接的時候不用任何密碼的配對,因為Wii搖桿本身不是設計給電腦使用的,請選擇不需密碼配對的選項,或者是密碼欄留空。

OK!連上。連上電腦後的Wii搖桿4顆LED會不斷閃爍。

怎麼玩? 想要嘗試影片上的功能,請依照想嘗試的功能下載,在這邊我整理給各位:

Wiimote Whiteboard

電子白板的小程式,不支援64位元的系統,使用方式可以參考以下的影片。

Multitouch

這比較麻煩,我目前還沒有成功過,因為我還沒去買紅外線二極體。

老實說,我認為Wiimote若只是拿來做這些應用的話似乎有些太浪費,並且在我測試之後發現會有一些角度問題,雖然這點只要把紅外線LED反過來就可以解決。

但這樣的應用大大的浪費了整支遙控器搭配的按鍵以及內建的許多功能,因此我認為這支搖桿還能做到更多樣的應用,例如說非接觸手勢控制、非接觸手寫辨識、無線電腦控制…等等。 附上執行程式以及原始程式碼,歡迎大家來共同討論這雖然過時但卻有趣的應用吧 =D

—- 撰文記事 —-

這篇文章放了快半年,當我打開草稿發現我自從3月之後就沒有在動過這篇文章時,我深深感到訝異…當然,還有比這篇文章更久的草稿文,哈哈! 是有拍實測影片,但總覺得很爛,又很懶得重拍(眼神死),就一直放到了現在…重點,我還是沒拍 XDD 因為放太久,久到我已經忘記原本是要怎麼規劃這篇文章了,所以,我決定先把這篇文章發表出來,當作第一部分。而第二部分則是實測的部分,這部分我會等新的影片完成之後再放上來。雖然我知道,這個東西在網路上已經有很多人發布,但我總覺得還有更有趣的應用,而腦中那個應用的想法已經完成一部分雛形,測試也OK,只剩下修正了…雖然已經修正半年了… 不管如何,我想先讓大家再認識一次這個有點過時的東西,下次,我會順便發表我的應用 :)

NetBeans 7 : unable to start pty process

不久前,我常用的 NetBeans IDE 出了點狀況,那就是當我用 C/C++ 寫程式的時候會一直跳出 unable to start pty process ,也就是呢,無法執行程式的意思。

嗯? 怎會這樣? 原本我以為是程式的問題,重裝了 NetBeans 也重新裝了 MinGW (GCC Compiler),沒用就是沒用,最後找上了 Google 大神。

不久前,我常用的 NetBeans IDE 出了點狀況,那就是當我用 C/C++ 寫程式的時候會一直跳出 unable to start pty process ,也就是呢,無法執行程式的意思。

嗯? 怎會這樣? 原本我以為是程式的問題,重裝了 NetBeans 也重新裝了 MinGW (GCC Compiler),沒用就是沒用,最後找上了 Google 大神。

這一 Google 下去,結果發現有這問題的不只我一個人,這似乎是一個 Bug,然後我在 Netbeans 的論壇中找到了這個解答,以下我就化成圖文說明幫大家解惑解惑。

請在你的專案(Project)名稱上面按一下右鍵,然後點下屬性(Properties)

出現一個新的視窗之後,請點選左邊的 Run

然後,右方的 Console Type 請改成除了 Internal Terminal 以外的選項

做完以上這幾個步驟,你的 NetBeans 應該就能正常編譯與執行 C 了!歡呼吧!XD

如何於VC#中執行命令提示字元的命令?

最近我寫了兩個很小小小小的工具程式,一個是用來查網路卡實體位置的,另一個則是用來將筆記型電腦轉換成無線網路分享器或基地台的小程式。

寫這兩個小程式目的是想要簡化一些繁瑣的程序,以那個查網路卡實體位置的小程式為例子,其實是因為我住宿使用的宿網需要綁定位置,而學校寫的實在是太複雜…所以我就想說乾脆寫個小程式送給所有有住宿的同學們,不過下載率有點低就是了。

最近我寫了兩個很小小小小的工具程式,一個是用來查網路卡實體位置的,另一個則是用來將筆記型電腦轉換成無線網路分享器或基地台的小程式。

寫這兩個小程式目的是想要簡化一些繁瑣的程序,以那個查網路卡實體位置的小程式為例子,其實是因為我住宿使用的宿網需要綁定位置,而學校寫的實在是太複雜…所以我就想說乾脆寫個小程式送給所有有住宿的同學們,不過下載率有點低就是了。

繼續閱讀 “如何於VC#中執行命令提示字元的命令?”

如何安裝 Oracle Java Developer Kit(JDK) 7 於 Ubuntu?

前一陣子 Oracle 釋出了 Java 7 ,這次釋出的版本並沒有像之前那樣擁有 .bin 格式的安裝檔,只有壓縮檔可以選擇,那這樣要怎麼安裝呢?

請先至官方網站下載幕前最新的 JDK 之後並將檔案解壓縮至你的家目錄下(或其他地方),然後在終端機中輸入…

前一陣子 Oracle 釋出了 Java 7 ,這次釋出的版本並沒有像之前那樣擁有 .bin 格式的安裝檔,只有壓縮檔可以選擇,那這樣要怎麼安裝呢?

請先至官方網站下載目前最新的 JDK 之後並將檔案解壓縮至你的家目錄下(或其他地方),然後在終端機中輸入

在開啟的檔案最底下插入這些

這指令有沒有很熟悉?是了!就是之前安裝 Java 6 的那時用到的那個方法,只是安裝方式有點不大相同。當然,如果你解壓縮到其他位置,那第1行的路徑就要改成那個位置。

輸入完成並儲存之後,請重新登入,然後開啟終端機…我想你應該猜得到接下來要做什麼了,沒錯,就是驗證! 請在終端機中輸入

確認 JDK 的編譯器可以使用,並且版本正確。

再輸入

確認 JRM 是 Oracle 的而不是 OpenJDK。

如果訊息都正確,恭喜你,你的 Java 環境已經建立完成了!如果不行,請回到前頭檢查看看是不是少做了哪個步驟,應該都能解決 =D

程式設計之陣列外傳。

陣列?啥?是列陣吧?要打仗嗎? 喔,不不不,是陣列無誤。這是英文 Array 翻譯而來的結果。不過,說真的,光聽陣列這兩個字其實頗抽象的,因為從字面上很難去了解它到底是什麼樣的東西。 也許我們可以拿戰爭中常用的陣形來作比喻。

其實陣列,說簡單一點就是一排很多空格的櫃子,每一格都有編號,編號從0到你所設定的格數(長度)為止。以剛剛那個程式碼來講,他第一排軍人的編號是0而不是1,第二排的編號則是1..以此類推。….

陣列?啥?是列陣吧?要打仗嗎? 喔,不不不,是陣列無誤。這是英文 Array 翻譯而來的結果。不過,說真的,光聽陣列這兩個字其實頗抽象的,因為從字面上很難去了解它到底是什麼樣的東西。 也許我們可以拿戰爭中常用的陣形來作比喻。

繼續閱讀 “程式設計之陣列外傳。”