- Sep 23 Tue 2008 10:31
-
開發WinCE的偵錯方法
連接至WinCE偵錯方法: WinCE設備的設定 到安裝VS.NET的電腦中的 C:\Program Files\Common Files\microsoft shared\CoreCon\1.0\Target\wce400 裡面,選擇你用的CPU,如x86,到該資料夾裡面,將相關檔案複製一份到WinCE裝置任意資料夾下。 開啟你的Windows CE裝置,用「檔案總管」到複製檔案的地方,先執行"ConmanClient2.exe",之後執行"CMAccept.exe",這兩個直行後都是沒有介面會跑出來的,所以確定有去執行它就可以了。
- Sep 22 Mon 2008 11:12
-
.NET資源回收IDisposable介面
最近敝人在WinCE-based上開發的模組越來越龐大,另一方面是IO處理頻繁,執行一兩天就會因資源不足導致Shutdown。沒錯,資源對於WinCE而言一直都是相當棘手的問題,畢竟WinCE的記憶體和虛擬記憶體空間都不像桌上型電腦龐大,可以想怎麼用就怎麼用。因此,當我們針對WinCE模組設計時,除了程式資源分配盡量優化外,更重要的是需考慮其模組資源上的使用與釋放,如此的系統才能經的起長時間的考驗。以下是網路一篇文章,我覺得很淺顯易懂,在此就暫時引用一下這位高手的文獻,供大家參考:
(作者:史帝芬)
(作者:史帝芬)
- Sep 21 Sun 2008 11:01
-
維繫感情的觀念
這篇是生活網看到的,我是覺得有些觀念滿值得彼此學習的
就轉貼一下摟:
你發覺到了嗎?
愛的感覺,總是在一開始覺得很甜蜜,
總覺得多一個人陪、多一個人幫你分擔,你終於不再孤單了,
至少有一個人想著你、戀著你,不論做什麼事情,只要能在一起,就是好的..........
但是慢慢的,隨著彼此的認識愈深,你開始發現了對方的缺點,
於是問題一個接著一個發生,你開始煩、累甚至想要逃避,
有人說愛情就像在撿石頭,總想撿到一個適合自己的,
但是你又如何知道什麼時候能夠撿到呢?她適合你、那你又適合她嗎?
其實,愛情就像磨石子一樣,或許剛撿到的時候,你不是那麼的滿意,
但是記住人是有彈性的,很多事情是可以改變的,
只要你有心、有勇氣,與其到處去撿未知的石頭,
還不如好好的將自己已經擁有的石頭磨亮磨光,你開始磨了嗎?
很多人以為是因為感情淡了,所以人才會變得懶惰。
錯!其實是人先被惰性征服,所以感情才會變淡的。
在某個聚餐的場合,有人提議多吃點蝦子對身體好,這時候有個中年男人忽然說:
「十年前,當我的老婆還是我的女朋友的時候,她說要吃十隻蝦,我就剝二十隻給她!
現在,如果她要我幫她剝蝦殼,開玩笑,我連幫她脫衣服都沒興趣了,還剝蝦殼咧!」
聽到了嗎?難怪越來越多人只想要談一輩子的戀愛,卻遲遲不肯走入婚姻。
因為,婚姻容易讓人變得懶惰。
如果每個人都懶得講話、懶得傾聽、懶得製造驚喜、懶得溫柔體貼,
那麼夫妻! 或是情人之間,又怎麼會不漸行漸遠漸無聲呢?
所以請記住:有活力的愛情,是需要適度殷勤灌溉的,談戀愛,更是不可以偷懶的喔!
有一對情侶,相約下班後去用餐、逛街,可是女孩因為公司會議而延誤了,
當她冒著雨趕到的時候已經遲到了30多分鐘,他的男朋友很不高興的說:
「妳每次都這樣,現在我甚麼心情也沒了,我以後再也不會等妳了!」
剎那間,女孩終於決堤崩潰,她心裡想:或許,他們再也沒有未來了!
同樣的在同一個地點,另一對情侶也面臨同樣的處境;
女孩趕到的時候也遲到了半個鐘頭,
他的男朋友說:「我想妳一定忙壞了吧!」
接著他為女孩拭去臉上的雨水,並且脫去外套蓋在女孩身上,
此刻,女孩流淚了!但是流過她臉頰的淚卻是溫馨的,
你體會到了嗎?其實愛、恨往往只是在我們的一念之間!
愛不僅要懂得寬容更要及關心,很多事可能只是在於你心境的轉變罷了!你懂了嗎?
當有個人愛上你,而你也覺得他不錯。那並不代表你會選擇他。
你說:你要找一個你很愛很愛的人,你才會談戀愛。
但是當對方問你:怎樣才算是很愛很愛的時候,你卻無法回答他,因為你自己也不知道。
沒錯,我們總是以為,我們會找到一個自己很愛很愛的人。
可是後來,當我們猛然回! 首,我們才會發覺自己曾經多麼天真。
假如從來沒有開始,你怎麼知道自己會不會很愛很愛那個人呢?
其實,很愛很愛的感? 情A是要在一起經歷了許多事情之後才會發現的。
或許每個人都希望能夠找到自己心目中百分之百的伴侶,
但是你有沒有想過:在你身邊會不會早已經有人默默對你付出很久了,只是你沒發覺而已呢?
如果你也正在為愛迷惘,或許下面這段話可以給你一些啟示:
愛一個人!要了解,也要開解;要道歉,也要道謝;要認錯,也要改錯;要體貼,也要體諒;
是接受,而不是忍受;是寬容,而不是縱容;是支持,而不是支配;是慰問,而不是質問;
是傾訴,而不是控訴;是難忘,而不是遺忘;是彼此交流,而不是凡事交代;
是為對方默默祈求,而不是向對方諸多要求;
可以浪漫,但不要浪費;可以隨時牽手,但不要隨便分手
如果你都做到了,即使你不再愛一個人,也只有懷念,而不會懷恨。
你懂得如何去愛了嗎?試試看吧!
就轉貼一下摟:
你發覺到了嗎?
愛的感覺,總是在一開始覺得很甜蜜,
總覺得多一個人陪、多一個人幫你分擔,你終於不再孤單了,
至少有一個人想著你、戀著你,不論做什麼事情,只要能在一起,就是好的..........
但是慢慢的,隨著彼此的認識愈深,你開始發現了對方的缺點,
於是問題一個接著一個發生,你開始煩、累甚至想要逃避,
有人說愛情就像在撿石頭,總想撿到一個適合自己的,
但是你又如何知道什麼時候能夠撿到呢?她適合你、那你又適合她嗎?
其實,愛情就像磨石子一樣,或許剛撿到的時候,你不是那麼的滿意,
但是記住人是有彈性的,很多事情是可以改變的,
只要你有心、有勇氣,與其到處去撿未知的石頭,
還不如好好的將自己已經擁有的石頭磨亮磨光,你開始磨了嗎?
很多人以為是因為感情淡了,所以人才會變得懶惰。
錯!其實是人先被惰性征服,所以感情才會變淡的。
在某個聚餐的場合,有人提議多吃點蝦子對身體好,這時候有個中年男人忽然說:
「十年前,當我的老婆還是我的女朋友的時候,她說要吃十隻蝦,我就剝二十隻給她!
現在,如果她要我幫她剝蝦殼,開玩笑,我連幫她脫衣服都沒興趣了,還剝蝦殼咧!」
聽到了嗎?難怪越來越多人只想要談一輩子的戀愛,卻遲遲不肯走入婚姻。
因為,婚姻容易讓人變得懶惰。
如果每個人都懶得講話、懶得傾聽、懶得製造驚喜、懶得溫柔體貼,
那麼夫妻! 或是情人之間,又怎麼會不漸行漸遠漸無聲呢?
所以請記住:有活力的愛情,是需要適度殷勤灌溉的,談戀愛,更是不可以偷懶的喔!
有一對情侶,相約下班後去用餐、逛街,可是女孩因為公司會議而延誤了,
當她冒著雨趕到的時候已經遲到了30多分鐘,他的男朋友很不高興的說:
「妳每次都這樣,現在我甚麼心情也沒了,我以後再也不會等妳了!」
剎那間,女孩終於決堤崩潰,她心裡想:或許,他們再也沒有未來了!
同樣的在同一個地點,另一對情侶也面臨同樣的處境;
女孩趕到的時候也遲到了半個鐘頭,
他的男朋友說:「我想妳一定忙壞了吧!」
接著他為女孩拭去臉上的雨水,並且脫去外套蓋在女孩身上,
此刻,女孩流淚了!但是流過她臉頰的淚卻是溫馨的,
你體會到了嗎?其實愛、恨往往只是在我們的一念之間!
愛不僅要懂得寬容更要及關心,很多事可能只是在於你心境的轉變罷了!你懂了嗎?
當有個人愛上你,而你也覺得他不錯。那並不代表你會選擇他。
你說:你要找一個你很愛很愛的人,你才會談戀愛。
但是當對方問你:怎樣才算是很愛很愛的時候,你卻無法回答他,因為你自己也不知道。
沒錯,我們總是以為,我們會找到一個自己很愛很愛的人。
可是後來,當我們猛然回! 首,我們才會發覺自己曾經多麼天真。
假如從來沒有開始,你怎麼知道自己會不會很愛很愛那個人呢?
其實,很愛很愛的感? 情A是要在一起經歷了許多事情之後才會發現的。
或許每個人都希望能夠找到自己心目中百分之百的伴侶,
但是你有沒有想過:在你身邊會不會早已經有人默默對你付出很久了,只是你沒發覺而已呢?
如果你也正在為愛迷惘,或許下面這段話可以給你一些啟示:
愛一個人!要了解,也要開解;要道歉,也要道謝;要認錯,也要改錯;要體貼,也要體諒;
是接受,而不是忍受;是寬容,而不是縱容;是支持,而不是支配;是慰問,而不是質問;
是傾訴,而不是控訴;是難忘,而不是遺忘;是彼此交流,而不是凡事交代;
是為對方默默祈求,而不是向對方諸多要求;
可以浪漫,但不要浪費;可以隨時牽手,但不要隨便分手
如果你都做到了,即使你不再愛一個人,也只有懷念,而不會懷恨。
你懂得如何去愛了嗎?試試看吧!
- Sep 18 Thu 2008 16:00
-
組語基礎篇-Lea與Mov
這兩天為了替同事上課,整理一些基礎的組合語言資料,本來想說用google大神剪剪貼貼就搞定,但發現一件十分有趣的事,就是這lea與mov兩個指令,似乎都說是「近似」的指令,讓人非常傻眼,還很少人更正,是這種低級語言....不不低階語言已經乏人問津了還是忽視,反正我也在整理資料,順便寫一下,這兩個天壤之別的指令到底差在哪裡。 Lea傳遞變數位置 Mov傳遞變數數值 學過C++的,應該很容易了解吧~~就是指指標的 *X1 語 &X1。我也很納悶為什麼那麼多人會說兩者差不多,我想,可能為誤會的原因應該是組語「字串」傳遞所害的,舉例來講: lpCaption="Caption"
lpText="Hello World!" _asm
{
push MB_OK
lea eax,lpCaption
push eax
lea eax,lpText
push eax
push NULL
call dword ptr [MessageBoxA]
}
lpText="Hello World!" _asm
{
push MB_OK
lea eax,lpCaption
push eax
lea eax,lpText
push eax
push NULL
call dword ptr [MessageBoxA]
}
- Sep 17 Wed 2008 11:16
-
VB.NET簡單存取Byte變數中各Bit
Sub WriteBit(ByRef Data As byte,ByVal BitIndex As Integer, ByVal NewBit As Boolean)
If NewBit = True Then
Data = Data And Math.Pow(2, BitIndex)
Else
Data = Data And (&HFF - Math.Pow(2, BitIndex))
End If
- Sep 16 Tue 2008 15:54
-
WinCE核心Coredll.dll函數列表
WinCE.NET兩個重要函數之一Coredll.dll,為方便查詢將清單列於此:
1 SystemStarted
2 InitializeCriticalSection
3 DeleteCriticalSection
4 EnterCriticalSection
5 LeaveCriticalSection
6 ExitThread
7 PSLNotify
8 InitLocale
9 InterlockedTestExchange
10 InterlockedIncrement
11 InterlockedDecrement
12 InterlockedExchange
13 ThreadBaseFunc
14 MainThreadBaseFunc
15 TlsGetValue
16 TlsSetValue
17 GetVersionEx
18 CompareFileTime
19 SystemTimeToFileTime
20 FileTimeToSystemTime
21 FileTimeToLocalFileTime
22 LocalFileTimeToFileTime
23 GetLocalTime
24 SetLocalTime
25 GetSystemTime
26 SetSystemTime
27 GetTimeZoneInformation
28 SetTimeZoneInformation
29 GetCurrentFT
30 IsAPIReady
31 memchr
32 GetAPIAddress
33 LocalAlloc
34 LocalReAlloc
35 LocalSize
36 LocalFree
37 RemoteLocalAlloc
38 RemoteLocalReAlloc
39 RemoteLocalSize
40 RemoteLocalFree
41 LocalAllocInProcess
42 LocalFreeInProcess
43 LocalSizeInProcess
44 HeapCreate
45 HeapDestroy
46 HeapAlloc
47 HeapReAlloc
48 HeapSize
49 HeapFree
50 GetProcessHeap
51 HeapValidate
52 GetHeapSnapshot
53 CeModuleJit
54 CompactAllHeaps
56 wsprintfW
57 wvsprintfW
58 wcscat
59 wcschr
60 wcscmp
61 wcscpy
62 wcscspn
63 wcslen
64 wcsncat
65 wcsncmp
66 wcsncpy
67 _wcsnset
68 wcspbrk
69 wcsrchr
70 _wcsrev
71 _wcsset
72 wcsspn
73 wcsstr
74 _wcsdup
75 wcstombs
76 mbstowcs
77 wcstok
78 _wtol
79 _wtoll
80 Random
82 ProfileStart
83 ProfileStop
87 __C_specific_handler
88 GlobalMemoryStatus
89 SystemParametersInfoW
90 CreateDIBSection
91 EqualRgn
92 CreateAcceleratorTableW
93 DestroyAcceleratorTable
94 LoadAcceleratorsW
95 RegisterClassW
96 CopyRect
97 EqualRect
98 InflateRect
99 IntersectRect
100 IsRectEmpty
101 OffsetRect
102 PtInRect
103 SetRect
104 SetRectEmpty
105 SubtractRect
106 UnionRect
107 ClearCommBreak
108 ClearCommError
109 EscapeCommFunction
110 GetCommMask
111 GetCommModemStatus
112 GetCommProperties
113 GetCommState
114 GetCommTimeouts
115 PurgeComm
116 SetCommBreak
117 SetCommMask
118 SetCommState
119 SetCommTimeouts
120 SetupComm
121 TransmitCommChar
122 WaitCommEvent
123 EnumPnpIds
124 EnumDevices
125 GetDeviceKeys
126 CryptAcquireContextW
127 CryptReleaseContext
128 CryptGenKey
129 CryptDeriveKey
130 CryptDestroyKey
131 CryptSetKeyParam
132 CryptGetKeyParam
133 CryptExportKey
134 CryptImportKey
135 CryptEncrypt
136 CryptDecrypt
137 CryptCreateHash
138 CryptHashSessionKey
139 CryptHashData
140 CryptDestroyHash
141 CryptSignHashW
142 CryptVerifySignatureW
143 CryptGenRandom
144 CryptGetUserKey
145 CryptSetProviderW
146 CryptGetHashParam
147 CryptSetHashParam
148 CryptGetProvParam
149 CryptSetProvParam
150 CryptSetProviderExW
151 CryptGetDefaultProviderW
152 CryptEnumProviderTypesW
153 CryptEnumProvidersW
154 CryptContextAddRef
155 CryptDuplicateKey
156 CryptDuplicateHash
157 AttachDebugger
158 SetInterruptEvent
159 IsExiting
160 CreateDirectoryW
161 RemoveDirectoryW
162 GetTempPathW
163 MoveFileW
164 CopyFileW
165 DeleteFileW
166 GetFileAttributesW
167 FindFirstFileW
168 CreateFileW
169 SetFileAttributesW
170 ReadFile
171 WriteFile
172 GetFileSize
173 SetFilePointer
174 GetFileInformationByHandle
175 FlushFileBuffers
176 GetFileTime
177 SetFileTime
178 SetEndOfFile
179 DeviceIoControl
180 FindClose
181 FindNextFileW
182 CheckPassword
183 DeleteAndRenameFile
184 GetDiskFreeSpaceExW
185 IsValidCodePage
186 GetACP
187 GetOEMCP
188 GetCPInfo
189 SetACP
190 SetOEMCP
191 IsDBCSLeadByte
192 IsDBCSLeadByteEx
193 iswctype
194 towlower
195 towupper
196 MultiByteToWideChar
197 WideCharToMultiByte
198 CompareStringW
199 LCMapStringW
200 GetLocaleInfoW
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
2000 __rt_sdiv64by64
2001 __rt_srem64by64
2002 __rt_udiv64by64
2003 __rt_urem64by64
2005 __rt_sdiv
2006 __rt_sdiv10
2008 __rt_udiv
2009 __rt_udiv10
2010 __rt_srsh
2011 __rt_ursh
2012 __utod
2013 __u64tos
2014 __u64tod
2015 __subs
2016 __subd
2017 __stou64
2018 __stou
2019 __stoi64
2020 __stoi
2021 __stod
2022 __nes
2023 __negs
2024 __negd
2025 __ned
2026 __muls
2027 __muld
2028 __lts
2029 __ltd
2030 __les
2031 __led
2032 __itos
2033 __itod
2034 __i64tos
2035 __i64tod
2036 __gts
2037 __gtd
2038 __ges
2039 __ged
2040 __eqs
2041 __eqd
2042 __dtou64
2043 __dtou
2044 __dtos
2045 __dtoi64
2046 __dtoi
2047 __divs
2048 __divd
2049 __cmps
2050 __cmpd
2051 __adds
2052 __utos
2053 __addd
2054 setjmp
2055 _mbmemset
1 SystemStarted
2 InitializeCriticalSection
3 DeleteCriticalSection
4 EnterCriticalSection
5 LeaveCriticalSection
6 ExitThread
7 PSLNotify
8 InitLocale
9 InterlockedTestExchange
10 InterlockedIncrement
11 InterlockedDecrement
12 InterlockedExchange
13 ThreadBaseFunc
14 MainThreadBaseFunc
15 TlsGetValue
16 TlsSetValue
17 GetVersionEx
18 CompareFileTime
19 SystemTimeToFileTime
20 FileTimeToSystemTime
21 FileTimeToLocalFileTime
22 LocalFileTimeToFileTime
23 GetLocalTime
24 SetLocalTime
25 GetSystemTime
26 SetSystemTime
27 GetTimeZoneInformation
28 SetTimeZoneInformation
29 GetCurrentFT
30 IsAPIReady
31 memchr
32 GetAPIAddress
33 LocalAlloc
34 LocalReAlloc
35 LocalSize
36 LocalFree
37 RemoteLocalAlloc
38 RemoteLocalReAlloc
39 RemoteLocalSize
40 RemoteLocalFree
41 LocalAllocInProcess
42 LocalFreeInProcess
43 LocalSizeInProcess
44 HeapCreate
45 HeapDestroy
46 HeapAlloc
47 HeapReAlloc
48 HeapSize
49 HeapFree
50 GetProcessHeap
51 HeapValidate
52 GetHeapSnapshot
53 CeModuleJit
54 CompactAllHeaps
56 wsprintfW
57 wvsprintfW
58 wcscat
59 wcschr
60 wcscmp
61 wcscpy
62 wcscspn
63 wcslen
64 wcsncat
65 wcsncmp
66 wcsncpy
67 _wcsnset
68 wcspbrk
69 wcsrchr
70 _wcsrev
71 _wcsset
72 wcsspn
73 wcsstr
74 _wcsdup
75 wcstombs
76 mbstowcs
77 wcstok
78 _wtol
79 _wtoll
80 Random
82 ProfileStart
83 ProfileStop
87 __C_specific_handler
88 GlobalMemoryStatus
89 SystemParametersInfoW
90 CreateDIBSection
91 EqualRgn
92 CreateAcceleratorTableW
93 DestroyAcceleratorTable
94 LoadAcceleratorsW
95 RegisterClassW
96 CopyRect
97 EqualRect
98 InflateRect
99 IntersectRect
100 IsRectEmpty
101 OffsetRect
102 PtInRect
103 SetRect
104 SetRectEmpty
105 SubtractRect
106 UnionRect
107 ClearCommBreak
108 ClearCommError
109 EscapeCommFunction
110 GetCommMask
111 GetCommModemStatus
112 GetCommProperties
113 GetCommState
114 GetCommTimeouts
115 PurgeComm
116 SetCommBreak
117 SetCommMask
118 SetCommState
119 SetCommTimeouts
120 SetupComm
121 TransmitCommChar
122 WaitCommEvent
123 EnumPnpIds
124 EnumDevices
125 GetDeviceKeys
126 CryptAcquireContextW
127 CryptReleaseContext
128 CryptGenKey
129 CryptDeriveKey
130 CryptDestroyKey
131 CryptSetKeyParam
132 CryptGetKeyParam
133 CryptExportKey
134 CryptImportKey
135 CryptEncrypt
136 CryptDecrypt
137 CryptCreateHash
138 CryptHashSessionKey
139 CryptHashData
140 CryptDestroyHash
141 CryptSignHashW
142 CryptVerifySignatureW
143 CryptGenRandom
144 CryptGetUserKey
145 CryptSetProviderW
146 CryptGetHashParam
147 CryptSetHashParam
148 CryptGetProvParam
149 CryptSetProvParam
150 CryptSetProviderExW
151 CryptGetDefaultProviderW
152 CryptEnumProviderTypesW
153 CryptEnumProvidersW
154 CryptContextAddRef
155 CryptDuplicateKey
156 CryptDuplicateHash
157 AttachDebugger
158 SetInterruptEvent
159 IsExiting
160 CreateDirectoryW
161 RemoveDirectoryW
162 GetTempPathW
163 MoveFileW
164 CopyFileW
165 DeleteFileW
166 GetFileAttributesW
167 FindFirstFileW
168 CreateFileW
169 SetFileAttributesW
170 ReadFile
171 WriteFile
172 GetFileSize
173 SetFilePointer
174 GetFileInformationByHandle
175 FlushFileBuffers
176 GetFileTime
177 SetFileTime
178 SetEndOfFile
179 DeviceIoControl
180 FindClose
181 FindNextFileW
182 CheckPassword
183 DeleteAndRenameFile
184 GetDiskFreeSpaceExW
185 IsValidCodePage
186 GetACP
187 GetOEMCP
188 GetCPInfo
189 SetACP
190 SetOEMCP
191 IsDBCSLeadByte
192 IsDBCSLeadByteEx
193 iswctype
194 towlower
195 towupper
196 MultiByteToWideChar
197 WideCharToMultiByte
198 CompareStringW
199 LCMapStringW
200 GetLocaleInfoW
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
2000 __rt_sdiv64by64
2001 __rt_srem64by64
2002 __rt_udiv64by64
2003 __rt_urem64by64
2005 __rt_sdiv
2006 __rt_sdiv10
2008 __rt_udiv
2009 __rt_udiv10
2010 __rt_srsh
2011 __rt_ursh
2012 __utod
2013 __u64tos
2014 __u64tod
2015 __subs
2016 __subd
2017 __stou64
2018 __stou
2019 __stoi64
2020 __stoi
2021 __stod
2022 __nes
2023 __negs
2024 __negd
2025 __ned
2026 __muls
2027 __muld
2028 __lts
2029 __ltd
2030 __les
2031 __led
2032 __itos
2033 __itod
2034 __i64tos
2035 __i64tod
2036 __gts
2037 __gtd
2038 __ges
2039 __ged
2040 __eqs
2041 __eqd
2042 __dtou64
2043 __dtou
2044 __dtos
2045 __dtoi64
2046 __dtoi
2047 __divs
2048 __divd
2049 __cmps
2050 __cmpd
2051 __adds
2052 __utos
2053 __addd
2054 setjmp
2055 _mbmemset
- Sep 15 Mon 2008 09:54
-
重新啟動WinCE系統
WinCE系統若想要重新啟動,沒有.NET的Managed函數可用,須倚靠 Coredll.dll的KernelIoControl完成,以下是用Managed包裝後的重啟函數,使用方法很簡單,直接呼叫ResetSystem()即可:Private Const FILE_DEVICE_HAL As Integer = &H101
Private Const METHOD_BUFFERED As Integer = 0
Private Const FILE_ANY_ACCESS As Integer = 0
Private Function CTL_CODE( _
ByVal DeviceType As Integer, _
ByVal Func As Integer, _
ByVal Method As Integer, _
ByVal Access As Integer) As Integer
Return (DeviceType << 16) Or (Access << 14) Or (Func << 2) Or Method
End Function
Declare Function KernelIoControl Lib "CoreDll.dll" _
(ByVal dwIoControlCode As Integer, _
ByVal lpInBuf As IntPtr, _
ByVal nInBufSize As Integer, _
ByVal lpOutBuf As IntPtr, _
ByVal nOutBufSize As Integer, _
ByRef lpBytesReturned As Integer _
) As Integer
Private Function ResetSystem() As Integer
Dim bytesReturned As Integer = 0
Dim IOCTL_HAL_REBOOT As Integer = CTL_CODE(FILE_DEVICE_HAL, _
15, METHOD_BUFFERED, FILE_ANY_ACCESS)
Return KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, _
IntPtr.Zero, 0, bytesReturned)
End Function
Private Const METHOD_BUFFERED As Integer = 0
Private Const FILE_ANY_ACCESS As Integer = 0
Private Function CTL_CODE( _
ByVal DeviceType As Integer, _
ByVal Func As Integer, _
ByVal Method As Integer, _
ByVal Access As Integer) As Integer
Return (DeviceType << 16) Or (Access << 14) Or (Func << 2) Or Method
End Function
Declare Function KernelIoControl Lib "CoreDll.dll" _
(ByVal dwIoControlCode As Integer, _
ByVal lpInBuf As IntPtr, _
ByVal nInBufSize As Integer, _
ByVal lpOutBuf As IntPtr, _
ByVal nOutBufSize As Integer, _
ByRef lpBytesReturned As Integer _
) As Integer
Private Function ResetSystem() As Integer
Dim bytesReturned As Integer = 0
Dim IOCTL_HAL_REBOOT As Integer = CTL_CODE(FILE_DEVICE_HAL, _
15, METHOD_BUFFERED, FILE_ANY_ACCESS)
Return KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, _
IntPtr.Zero, 0, bytesReturned)
End Function
- Sep 12 Fri 2008 15:31
-
.NET強大簡單的多執行緒功能
多執行緒(MultiThread)是系統效能的強力工具,可以將原本低效率的程式以分工的方式提升數倍,對於核心開發的工作,如WinCE,多執行緒變成不可不熟悉的技術,例如處理IO,當大量資料進入系統的時候,總不能讓User看到系統發呆的難看景象吧~那誰要買我們的系統呢? 還好,微軟強大的軟體工程師幫你簡化的這方面的問題,對於多執行緒的開發,兩行指令就能處置,當然,除了「開線」外,其他還有很多必須知道的事,例如非同步執行緒的資料同步問題、各執行緒與UI之間的溝通等等,在此先稍微開場,如何開多線。 標準的執行緒開啟: Dim mythread As New System.Threading.Thread(AddressOf myProccess) mythread.Start() Private Sub myProccess() ..... End Sub
- May 31 Thu 2007 11:27
-
[轉貼] 祭師大大的文章翻譯

WinFX vs .NET Framework 3.0
在2006年6月,微軟副總S. Somasegar宣布將把WinFX更名為.NET Framework 3.0,想知道更多詳細資訊檢視他的Blog。這份文件包含了.NET Framework 3.0更名的常見問題,關於額外的部署問題請參照MSDN上的.NET Framework 3.0 deployment文件。
Q1:什麼是.NET Framework 3.0(先前代號WinFX)?
A:.NET Framewrok 3.0是微軟受管理程式碼編寫模型,它是.NET Framework 2.0的超集,以新的應用程式建構技術結合.NET Framework 2.0 component,包括了視覺化令人震撼的使用者經驗(指WPF,Avalon)、無縫高度整合與安全的通訊(指WCF,Indigo)、塑造建構一個商業流程範圍的能力(指WF,WorkFlow)及Windows CardSpace。
Q2:WinFX技術發生了什麼事?
A:WinFX現在將會以.NET Framework 3.0命名釋出,WinFX技術本身沒有任改變(包含交貨日期),其實是同樣的技術,只不過單單命名改變罷了。
Q3:.NET Framework 3.0與.NET Framework 2.0之間的關連性為何?
A:.NET Framework 3.0是在.NET Framework 2.0之上附加一些技術,主要附加了四大部分:Windows Presentation Foundation (WPF) 、Windows Workflow Foundation (WF) 、Windows Communication Foundation (WCF)和 Windows CardSpace。在.NET Framework 3.0中所包含的.NET Framework 2.0 component本身並沒有任何的變動,這意謂著今天數以百萬計的.NET程式開發人員可使用既有的能力去建構.NET Framework 3.0應用程式,同時也意謂著目前在.NET 2.0執行的應用程式也可以直接在.NET Framework 3.0上執行。
以下為.NET Framework 3.0的架構圖:
Q4:當我安裝.NET Framework 3.0時會發生什麼事?如果我已安裝了.NET Framework 2.0要如何升級?
A:當你安裝.NET Framework 3.0時,系統會檢查你是否已經安裝.NET Framework 2.0,如果沒有,系統會替您安裝.NET Framework 2.0,然後再安裝.NET Framework 3.0 component;如果你已安裝.NET Framework 2.0,系統只會安裝.NET Framework 3.0新的Component。
Q5:我的組織剛通過認證核准程序將.NET Framework 2.0應用在生產環境,若在.NET Framework 3.0之上我們需要重新全面進行認證核准程序?我需要為.NET Framework 2.0應用程式做任何的相容性測試嗎(指在.NET Framework 3.0上執行)?
A:因為.NET Framework 3.0只有加入新的component在.NET Framework 2.0之上,而沒有任何的.NET Framework 2.0的component改變,所以建構在.NET Framework 2.0之上的應用程式將不會受到任何影響;故當您安裝完NET Framework 3.0之後,並不需要為您的.NET Framework 2.0應用程式做任何的測試。
Q6:名稱的改變是否會反映在任何.NET Framework 2.0既存的APIs,assemblies與namespace?
A:在.NET Framework 2.0既存的APIs,assemblies與namespace不會有任何的改變,你建構在.NET Framework 2.0之上的應用程式將會繼續照舊在.NET Framework 3.0上執行。
Q7:.NET Framework 3.0將會使用哪個版本的Common Language Runtime (CLR)?
A:.NET Framework 3.0將會使用.NET Framework 2.0的CLR(V2.0.50727),透過共用這個CLR核心引擎版本將能夠減少整個開發平台的衝擊,我們也期望較為底層的.NET Framework component(例如CLR Engine)能夠較高階層的APIs更少變動,如此才能保障在.NET技術上的投資。
Q8:如果.NET Framework使用.NET Framework 2.0的runtime與compiler,為何它是以.NET Framework 3.0為主要版本號碼命名?
A:.NET Framework 3.0所釋出的新技術包括了WCF, WF, WPF與CardSpace,提供了很多很棒的功能與創新,因此我們簽訂它使用主要版本號碼。
- May 31 Thu 2007 11:20
-
[分享] MOSS 2007 InfoPath Forms Services
聖哥在 5/30 講授的線上研討會:「MOSS 2007 清單與文件庫」
投影片,需要的朋友們,可以在以下的連結中下載:
MOSS 2007 InfoPath Forms Services
課程錄影點播:
一星期後上線。
大家如果有任何問題,可以到以下討論區中提出來討論:
SharePoint 討論區
投影片,需要的朋友們,可以在以下的連結中下載:
MOSS 2007 InfoPath Forms Services
課程錄影點播:
一星期後上線。
大家如果有任何問題,可以到以下討論區中提出來討論:
SharePoint 討論區
- May 16 Wed 2007 15:44
-
13 個改善EQ的小秘方檢舉
1.別急!慢慢來
當您面對失敗或頹勢時,千萬別慌了手腳而大發雷霆,試著將注意力放在「就算功敗垂
成,至少妳學到了」諸如此類的積極想法上,它會很神奇地舒緩緊繃情緒,做出正確的
判斷和反應。
2.承認自己錯了,別人對了
認真傾聽別人的觀點和意見,並且勇敢地面對錯誤,絕對是EQ指數向上跳躍一大步的指
標。
3.別被輕易收買
隨時都在面對誘惑的人生,得學會明察秋毫因為小惠的背後可能要付出極大代價,比較
安全的應變是,說些「謝謝你的提議,我會仔細思考。」「這個條件很誘人,值得考
慮。」等等好聽話,然後改變話題,讓對方知道您真的需要時間好好思考,此舉將使您
重掌控制權,不致於做下以後會讓您後悔莫及的決定。
4. 慎選朋友
雖然人生中有許多事由不得您,也許您很難量身訂作一個默契十足的好老闆,但是對於
該和什麼樣的朋友往來,您有絕對的主導權,睜大眼睛,選擇真正對您知無不言、可以
患難與共的朋友吧!在您情緒失控時,他們會先幫您踩剎車。
5.學習更明快而果斷
試著用最精煉簡潔的詞句表達您的意見想法,千萬別拉拉雜雜閒扯淡那不僅可能把對方
搞瘋,也會惹得自己心煩意亂。
6.就事論事
女人常犯的毛病是常常人事不分,一面對批評就直覺以為別人和您過不去,不是想當然
爾反應過度,就是暗自啜泣療傷,甚至因此而喪失自信,在這一點上,男人比較能理性
就事論事的態度,值得學習。
7.溝通,再溝通
別做個遇事就逃的縮頭烏龜,坦誠面對困境,不厭其煩地溝通,雨過天晴時,您一定會
有所學習和成長。
8.被拒時切忌惱羞成怒
當您的提議被否決時,先耐住性子聽聽對方的解釋,千萬別動不動就板起臉回敬一句:
「那沒什麼好說的了。」要知道當您表現得像隻劍拔弩張的刺蝟時,別人也會毫不留情
地以牙還牙。
9.少自作聰明妄下結論
譬如當一個您甚有好感的異性婉拒您的邀約時,別一口咬定一定是因為您太胖或臉上的
雀斑讓他卻步,天知道除了他真的有事外,還有上百個非常合理而正當的理由,試著別
太小題大作。
10.學著判斷輕重緩急
生活中要處理的事實在多如牛毛,有些無關緊要的小事,不妨看開些;將心力放在急迫
而深具影響力的任務上,要知道通常瑣事最是折煞人,如果不學著捨輕就重,保證心情
恐怕永遠像是滾滾沸沸的活火山,等著隨時爆發。
11.萬全準備
比如執行一項大計畫前,一定要有充分的準備,而在距離開始倒數計時的關鍵時分,將
全副心神放在活動重點上,如果覺得緊張,試著想像活動就十分圓滿地結束,它會讓您
稍微鎮定,且較能專注在流程細節上,成功完成任務的機率亦相對提高。
12.直言您的需求
如果您期待人們都具備有讀心術,可以準確無誤地得知您的需求,那麼恐怕您得一直生
活在失望之中了。
13.別心浮氣躁
如果您內心有所抱怨,找個朋友吐吐苦水,然後忘了它,記得高EQ的人是不會將怨懟埋
藏在心裡。
當您面對失敗或頹勢時,千萬別慌了手腳而大發雷霆,試著將注意力放在「就算功敗垂
成,至少妳學到了」諸如此類的積極想法上,它會很神奇地舒緩緊繃情緒,做出正確的
判斷和反應。
2.承認自己錯了,別人對了
認真傾聽別人的觀點和意見,並且勇敢地面對錯誤,絕對是EQ指數向上跳躍一大步的指
標。
3.別被輕易收買
隨時都在面對誘惑的人生,得學會明察秋毫因為小惠的背後可能要付出極大代價,比較
安全的應變是,說些「謝謝你的提議,我會仔細思考。」「這個條件很誘人,值得考
慮。」等等好聽話,然後改變話題,讓對方知道您真的需要時間好好思考,此舉將使您
重掌控制權,不致於做下以後會讓您後悔莫及的決定。
4. 慎選朋友
雖然人生中有許多事由不得您,也許您很難量身訂作一個默契十足的好老闆,但是對於
該和什麼樣的朋友往來,您有絕對的主導權,睜大眼睛,選擇真正對您知無不言、可以
患難與共的朋友吧!在您情緒失控時,他們會先幫您踩剎車。
5.學習更明快而果斷
試著用最精煉簡潔的詞句表達您的意見想法,千萬別拉拉雜雜閒扯淡那不僅可能把對方
搞瘋,也會惹得自己心煩意亂。
6.就事論事
女人常犯的毛病是常常人事不分,一面對批評就直覺以為別人和您過不去,不是想當然
爾反應過度,就是暗自啜泣療傷,甚至因此而喪失自信,在這一點上,男人比較能理性
就事論事的態度,值得學習。
7.溝通,再溝通
別做個遇事就逃的縮頭烏龜,坦誠面對困境,不厭其煩地溝通,雨過天晴時,您一定會
有所學習和成長。
8.被拒時切忌惱羞成怒
當您的提議被否決時,先耐住性子聽聽對方的解釋,千萬別動不動就板起臉回敬一句:
「那沒什麼好說的了。」要知道當您表現得像隻劍拔弩張的刺蝟時,別人也會毫不留情
地以牙還牙。
9.少自作聰明妄下結論
譬如當一個您甚有好感的異性婉拒您的邀約時,別一口咬定一定是因為您太胖或臉上的
雀斑讓他卻步,天知道除了他真的有事外,還有上百個非常合理而正當的理由,試著別
太小題大作。
10.學著判斷輕重緩急
生活中要處理的事實在多如牛毛,有些無關緊要的小事,不妨看開些;將心力放在急迫
而深具影響力的任務上,要知道通常瑣事最是折煞人,如果不學著捨輕就重,保證心情
恐怕永遠像是滾滾沸沸的活火山,等著隨時爆發。
11.萬全準備
比如執行一項大計畫前,一定要有充分的準備,而在距離開始倒數計時的關鍵時分,將
全副心神放在活動重點上,如果覺得緊張,試著想像活動就十分圓滿地結束,它會讓您
稍微鎮定,且較能專注在流程細節上,成功完成任務的機率亦相對提高。
12.直言您的需求
如果您期待人們都具備有讀心術,可以準確無誤地得知您的需求,那麼恐怕您得一直生
活在失望之中了。
13.別心浮氣躁
如果您內心有所抱怨,找個朋友吐吐苦水,然後忘了它,記得高EQ的人是不會將怨懟埋
藏在心裡。
- May 14 Mon 2007 19:40
-
給彼此多一點空間
老同學交了新女友,卻經常有空。
聽老同學說,他倆感情很要好,彼此心屬,極有婚嫁的契機。
於是,順理成章地認為,他們應該會膠膩在一起,水乳濃郁,
哪曉得晚餐找他,週末找他,他總是可以。
有一天,老同學找我吃飯,返家的路上,我小心翼翼,怕傷他自尊,很客氣又故做不經心地問了一句:「你怎麼都這麼有空啊?」
原以為這個階段的情侶應該形影不離。
我有些擔心,再問:「女朋友呢?不用陪嗎?」
老同學態度自然,落落大方的回答:「她約人了啊。」幾乎每個星期都是如此。
他們之間並沒有問題,老同學說,兩人會在週五夜裡開車到海邊看海,靜靜坐在車裡不說一句話,只感溫暖親近,不覺奇怪尷尬;也會在週日到內湖公園溜溜,坐在草地上煮咖啡,器具平時就放在後車廂裡,為每一次男女主人的遇合準備著,醞釀著。
興趣一致,工作相近,很有得聊;年紀相仿,觀點大同,鮮少爭執。
但是為什麼不常聚?「她也很忙啊,常常跟朋友有約,吃飯啊,談事情啊…」
老同學說來清淡,看不出有任何負面情緒。
我沒有接話,等了一會兒,按捺不住一份之於十年老同學的關心,又勇敢試探了一句:
「她好像不是很以你為重…」如此冒昧,只是不希望同學愛的寂寞,愛的孤單。
可是我的老同學,說了一句令我既驚喜又感動的話。
「或許這才是我們該學習的,學習不要去設定自己應該是對方最重要的人,學習不是非要霸佔對方大多數的時間,才是愛情。」
我聽了有些傻眼,轉頭看看我的老同學,用極為誠懇與欣賞的語氣說道:「你長大了耶…」老同學敲了我一記,卻不住輕笑了起來。
其實,在男女互動上,老同學向來比我貼心,也比我成熟。
這些年,經過數次感情動盪,他更成長了,而且長得很好。
從前,他的綽號叫做「小乖」,前任女朋友取的。
總是女朋友的忠心跟隨者,不只人家需要他,他也需要這等被依賴的受用,雖然惹得同儕訕笑戲謔,他似乎不以為意。
一週七天,一年三百六十五天,十年三千六百五十天,很難找得到他!
陶醉於被需要的成就感裡,他,是女朋友的最重要依靠。是一種甜蜜的負擔。
我不敢說好不好,也不敢評斷對不對,只是覺得如斯膠著,透露著某種程度「不健康」的訊息,不過,時間久了,他一往如昔被需要與被重視,情人間的關係沒有惡化,我們也不與置喙,遂習慣了這樣的模式,也加注了祝福。
長久如此,他怎能接受現今女友的「淡漠態度」與「獨立自主」?
這麼多空檔,這麼多自由,怎麼面對她的習慣?
老同學今天竟然欣然而平和地告訴我:
「或許這才是我們該學習的,學習自己不是,也不該是人家的第一名。」
曾經強烈地被需求,甚至沒了自己,而今突然遇到主張自我與平等的女友,該如何轉換這般角度?人是習性的動物,不容易的。
人也是虛榮的愛情俘虜,更加困難。
然而老同學不但轉過來了,而且轉的漂亮!
雙方互有自我,別離時長憶,有之於親人的信任與泰然;相聚時珍惜,更有之於愛人的甜蜜與悅喜。
現在,他不專職司機,也不負責購物搬運,不過,仍然會貼心地、主動地為女友打點生活瑣碎。
與以前相較,做的事沒有差太多,全然不同的是,感覺與感受。
彼此是彼此放在心上的重要人物,但都不是第一名。何苦要第一名?
許多人與事根本沒得比,不需要排擠啊,強爭頭的結果,往往是要求太多,應付太疲,心裡不平,毀傷情義。
或許,沒有人能是永遠的第一名,也沒有人該是這份永恆。
揮手道再見,老同學揚手起伏,自在大方!
在空中落成一個美麗的弧度,似乎顯映了他的心,也是這般快活得意。
天天見面的戀人不一定就是感情好,沒有天天見面的戀人也不一定感情會變差,重要的是兩個人的心有沒有心繫對方,給彼此多一點信任、多一點空間;這樣的戀情也是不錯的喔!
聽老同學說,他倆感情很要好,彼此心屬,極有婚嫁的契機。
於是,順理成章地認為,他們應該會膠膩在一起,水乳濃郁,
哪曉得晚餐找他,週末找他,他總是可以。
有一天,老同學找我吃飯,返家的路上,我小心翼翼,怕傷他自尊,很客氣又故做不經心地問了一句:「你怎麼都這麼有空啊?」
原以為這個階段的情侶應該形影不離。
我有些擔心,再問:「女朋友呢?不用陪嗎?」
老同學態度自然,落落大方的回答:「她約人了啊。」幾乎每個星期都是如此。
他們之間並沒有問題,老同學說,兩人會在週五夜裡開車到海邊看海,靜靜坐在車裡不說一句話,只感溫暖親近,不覺奇怪尷尬;也會在週日到內湖公園溜溜,坐在草地上煮咖啡,器具平時就放在後車廂裡,為每一次男女主人的遇合準備著,醞釀著。
興趣一致,工作相近,很有得聊;年紀相仿,觀點大同,鮮少爭執。
但是為什麼不常聚?「她也很忙啊,常常跟朋友有約,吃飯啊,談事情啊…」
老同學說來清淡,看不出有任何負面情緒。
我沒有接話,等了一會兒,按捺不住一份之於十年老同學的關心,又勇敢試探了一句:
「她好像不是很以你為重…」如此冒昧,只是不希望同學愛的寂寞,愛的孤單。
可是我的老同學,說了一句令我既驚喜又感動的話。
「或許這才是我們該學習的,學習不要去設定自己應該是對方最重要的人,學習不是非要霸佔對方大多數的時間,才是愛情。」
我聽了有些傻眼,轉頭看看我的老同學,用極為誠懇與欣賞的語氣說道:「你長大了耶…」老同學敲了我一記,卻不住輕笑了起來。
其實,在男女互動上,老同學向來比我貼心,也比我成熟。
這些年,經過數次感情動盪,他更成長了,而且長得很好。
從前,他的綽號叫做「小乖」,前任女朋友取的。
總是女朋友的忠心跟隨者,不只人家需要他,他也需要這等被依賴的受用,雖然惹得同儕訕笑戲謔,他似乎不以為意。
一週七天,一年三百六十五天,十年三千六百五十天,很難找得到他!
陶醉於被需要的成就感裡,他,是女朋友的最重要依靠。是一種甜蜜的負擔。
我不敢說好不好,也不敢評斷對不對,只是覺得如斯膠著,透露著某種程度「不健康」的訊息,不過,時間久了,他一往如昔被需要與被重視,情人間的關係沒有惡化,我們也不與置喙,遂習慣了這樣的模式,也加注了祝福。
長久如此,他怎能接受現今女友的「淡漠態度」與「獨立自主」?
這麼多空檔,這麼多自由,怎麼面對她的習慣?
老同學今天竟然欣然而平和地告訴我:
「或許這才是我們該學習的,學習自己不是,也不該是人家的第一名。」
曾經強烈地被需求,甚至沒了自己,而今突然遇到主張自我與平等的女友,該如何轉換這般角度?人是習性的動物,不容易的。
人也是虛榮的愛情俘虜,更加困難。
然而老同學不但轉過來了,而且轉的漂亮!
雙方互有自我,別離時長憶,有之於親人的信任與泰然;相聚時珍惜,更有之於愛人的甜蜜與悅喜。
現在,他不專職司機,也不負責購物搬運,不過,仍然會貼心地、主動地為女友打點生活瑣碎。
與以前相較,做的事沒有差太多,全然不同的是,感覺與感受。
彼此是彼此放在心上的重要人物,但都不是第一名。何苦要第一名?
許多人與事根本沒得比,不需要排擠啊,強爭頭的結果,往往是要求太多,應付太疲,心裡不平,毀傷情義。
或許,沒有人能是永遠的第一名,也沒有人該是這份永恆。
揮手道再見,老同學揚手起伏,自在大方!
在空中落成一個美麗的弧度,似乎顯映了他的心,也是這般快活得意。
天天見面的戀人不一定就是感情好,沒有天天見面的戀人也不一定感情會變差,重要的是兩個人的心有沒有心繫對方,給彼此多一點信任、多一點空間;這樣的戀情也是不錯的喔!