2012年12月7日 星期五

新增Windows Service相依性

設定Service相依性可以確保某一個Service只能在某個Service啟動後才能夠執行。

開始->執行regedit進入登錄編輯程式
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\選擇所要設定的Service

新增多字串值->DependOnService
資料則填入欲相依的Service名稱(DisplayName)

重新啟動相依的Service,看是否設定的Service會先被終止再啟動。如果沒有生效,可以重開機試試。

2012年12月1日 星期六

C/C++計算檔案大小

常常不記得取得檔案長度該怎麼寫,所以先筆記下來。

C++
ifstream is; is.open ("test.txt", ios::binary)
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);

C
FILE *fp = fopen(file, "r");
fseek(fp, 0, SEEK_END);
int size = ftell(fp);
fseek(fp, 0, SEEK_SET);

2012年10月27日 星期六

IP_ADD_MEMBERSHIP FAIL

如果在setsockopt失敗,而WSAGetLastError()的值為10042,發生的原因可能就出在使用到不同版本的winsock library。

因為
winsock.h
#define IP_ADD_MEMBERSHIP   5

ws2tcpip.h
#define IP_ADD_MEMBERSHIP    12

詳細說明可參考此連結

2012年10月21日 星期日

花蓮二日遊(2012 08/31-09/02) Day 3

由於火車時刻的關係,所以最後一天的行程只能放在一個主要景點(金針花海),然後再一路北上到花蓮車站

第三天行程:
六十石山賞金針花海->北迴歸線標->瑞穗牧場->台北


一早起來,就和爸媽騎著民宿的腳踏車在鄉間小徑繞了一下,看到一群人在採收文旦,才知原來花蓮的文旦也是很有名的。




接來下就是早餐時間了,原本不是很期待,但餐點一上桌就讓人驚豔,份量還真多也不錯吃

我爸和我姊的三明治都吃不完 早餐最後還是要打包
老闆有允許,所以爸、媽也去採文旦了


戰利品

2012年9月22日 星期六

花蓮二日遊(2012 08/31-09/02) Day 2

結束第一天悠哉的理想大地之旅後,第二天的行程就是要來擁抱花蓮的美景。來到花蓮當然就不能錯過太魯閣了、七星潭了,山景海景一次滿足。

第二日行程:太魯閣->七星潭->花蓮市區->瑞穗民宿(六心居)

經過前一晚的沙盤推演,最後決定還是租車比較划算。所以在花蓮車站的一家租車行就租了一台轎車,由於大家都沒租過車的經驗,所以檢查時都特別小心,深怕還車時會有糾紛的發生。



太魯閣行程一路經過了東西橫貫公路->燕子口->九曲洞->天祥,可惜的是九曲洞步道當時是封閉的,沒能近距離接觸。

東西橫貫公路

2012年9月11日 星期二

花蓮二日遊(2012 08/31-09/02) Day 1

期待好久的花蓮二日遊終於成行,這僅僅是我第二次踏上花蓮,心中難掩興奮。由於考量到路況的安全性,所以我們決定先搭火車到花蓮,然後再依情況選擇租車或是機車。

說到搭火車到花蓮,第一個聯想到的當然就是太魯閣號了,我們當然也不能錯過,所以在可以訂票的當天清晨六點,全家人早在電腦前待命了,依據前一天分配的任務來訂票。然而計劃總是趕不上變化,最後只搶到去程的太魯閣號,而回程是在下午三點四十一分的復興號。

票價差真大


第一天行程:

出發->花蓮->理想大地

準備出發了

2012年8月28日 星期二

三原色

一直以為三原色指的是(RGB)紅、綠、藍,今天才知道原來並不是如此。


顏料的三原色是(RYB)紅色 黃色 藍色
=> 屬於減少屬性的型態,眼睛擷取到的是不被吸收的部分,疊加愈多顏料會造成更多光被吸收,因此顏色會愈黑暗。

光的三原色則是(RGB)紅色 綠色 藍色
=> 屬於疊加性的色型態,眼睛實際偵測到光的原色在混合而成,疊加愈多會更明亮。

2012年8月13日 星期一

DebugView

之前看寫Windows Driver的人要Debug時,一定會拿出DebugView這套工具,原本還沒能體會他的好處,不過現在有機會可以來體驗一下。

要用DebugView Debug很容易,只要把要Log的地方用PrintDebugString()來印出想得到的資訊,開啟DebugView時就可以很輕易的抓到這些資訊。

看起來步驟很簡單,不過今天一開始試的時候卻踢到鐵板,DebugView怎樣就是沒印出我的Log,後來才發現原來開著VC2008 Debug mode跑的時候,Log只會印在VC上,不會印在DebugView上,目前我只知道不要用VC去執行程式,DebugView就可以正確得到Log資訊。

DebugView可以從微軟官網下載

2012年8月2日 星期四

運動家精神

難得放颱風假,一連看了好幾場中華隊的比賽,有射箭、羽球、網球、桌球,結果全部都輸了,看的心情有些低落。尤其是莊智淵的桌球四強賽,最後還是跟獎牌擦身而過。

不過,大家都盡力了,失敗了就讓自己變得更強贏回來就好了。

2012年7月26日 星期四

Redirect Background Program Ouput

要將一個背景程式的輸出Redirect到一個檔案去,如果是用以下的方法是沒用的。
# ./program & > log.txt

正確的方式應該是先Redirect後再丟到背景執行,如下:
# ./program > log.txt 2>&1 &

2012年7月25日 星期三

MFC自訂Message

最近發生在按件事件觸發後,執行到某個Thread,然後此Thread會做更新UI的動作,結果悲劇就產生了,DeadLock....

解決方式可以用自訂Message的方式來解決,如果Thread要更新UI,可以用PostMessage來取代。自訂Message的方式如下:

1. 先在Header檔訂義自訂的Message

#define WM_MY_MSG (WM_USER+ N)
[註] N為一個整數,來區別不同自訂的訊息

2. 加入處理此訊息的Function宣告
afx_msg LRESULT OnMyMSG(WPARAM wPararm, LPARAM lParam);

3. 在CPP檔加入消息映射
BEGIN_MESSAGE_MAP(CFactoryAPDlg, CDialog)
    ON_MESSAGE(WM_MY_MSG, OnMyMSG)
END_MESSAGE_MAP()

4. 實作OnMyMSG()


實作完後,就可以在Thread處理時,用PostMessage(WM_MY_MSG)來解決DeadLock的問題。

2012年7月19日 星期四

PHY

每次提到Ethernet時,常聽HW/Driver RD常講PHY這個專有名詞,真的把我搞混了。查了一下,原來PHY是OSI Phyiscal Layer的簡稱。

Ethernet PHY指的就是一個Chip實作傳送和接收Ethernet Frame,詳細可參考Wiki

2012年7月13日 星期五

慢跑

每當心情煩躁的時候,去運動場跑跑步,總能讓自己心情放鬆一點。
不知不覺中,也漸漸愛上慢跑了,該不會是心情常常BLUE吧...

雖然動機怪怪的,但至少運動對健康是有益的。
希望可以持之以恆。

2012年6月29日 星期五

Sleep in batch script

當我們在寫批次檔來完成某些事項時,如果需要暫停幾秒再執行某些指令,本來以為用sleep即可,不過實驗證明是沒用的。有以下兩種方法可以達成

  1. TIMEOUT /T 10
  2. ping 127.0.0.1 -n 10 -w 1000 > nul
PING的方式應該是比較不精準的方法

2012年5月18日 星期五

第二次出國

本來以為不會再去的,結果下星期一又要出差去成都了,真是千百個不願意。好在這次有人陪我一起出發,不然真的很難過。
在陌生的環境生活,每一天對我來說都好漫長,不熟悉的人、事、物,總讓人感到焦慮及不安。
希望下次再出國時,是去旅遊而不是工作了~~