發表文章

[Bug] Visual Studio doesn't break on unhandled exception with windows 64-bit

圖片
在之前一直都是使用32bit的作業系統,加上VS2008在這個險惡的環境中奮戰;一直以來也都相安無事(除了自己手殘產生的bug..),然而為了充分利用NB上裝的4G RAM,在幾經掙扎之後,在月黑風高的夜晚,將工作機重新安裝,從原先的W7(32bit)轉換到W7(64bit),作業系統安裝完成之後,就是一連串的application了,重灌的路真是漫長。重灌完成之後趕緊開啟每天都會使用的Visual Studio,測試了簡單的功能,漂亮,果然跟以往使用沒甚麼不同,所以就安心的去睡覺,沒想到事情就這麼發生了.. 隔天回到公司繼續進行奮戰,開啟專案之後,趕緊繼續的進行除蟲作業;一個階段之後開始進行測試,程式卻不能正常運作,於是就開始利用我最愛的F8(逐步執行),來看看是在哪邊發生錯誤,怪了,在Form_load中怎麼執行到某一行程式碼之後,就直接把Form的畫面帶出來,不繼續偵錯了?而且該行下面的程式碼全部沒有執行,怎麼會這樣,我真的慌了..Orz 繼續測試之後發現該行的程式碼是有問題的,但是照理來說會顯示exception才對,但在IDE環境中,卻都沒有任何exception的錯誤訊息,趕緊做個簡單的測試程式測試一下,於是寫了下面很簡單的測試程式碼 Private Sub Form1_Load ( ByVal sender As System . Object , ByVal e As System . EventArgs ) Handles MyBase . Load Dim i As Integer = 0 Dim j As Integer = 0 MessageBox . Show ( "Message 1" ) i = 100 / j MessageBox . Show ( "Message 2" ) End Sub 執行之後,在輸出視窗中可以看到只有列印出"Message 1"的訊息,之後Form1就跑出來了,"Message 2"就這樣被拋棄了 而除以0應該要產生的OverflowException也沒有發生,真糟;詢問了一些前輩...

我的Telnet跑哪去了?

圖片
如果你是使用Windows 7,在進入到命令提示字元之後,鍵入telnet指令,會發現已經沒有這個指令存在了,那怎麼辦呢? 原因是telnet並不是Windows 7預設會安裝的項目,可以到”新增疑除程式”中,”新增移除Windows元件”這邊把Telnet的功能加回來,像是下圖這邊

活動推薦:Visual Studio 2010 修練大會

圖片
各位朋友們,點部落推出了新的活動了喔;在工作之餘,也來參加比賽修練一下喔,增加戰鬥力也有機會拿獎品喔,詳情請參考下面連結 活動網址: http://www.dotblogs.com.tw/dotblogs/archive/2010/01/08/12926.aspx

利用CreateElement在前端產生的HTML,在ASP.Net後端程式碼要如何抓值呢

在撰寫前端(Client)的頁面時,有時會遇到必須要動態的去新增一些Html的Tag,例如說輸入用text等等,那麼這些動態產生的Tag,經過submit到APS.Net的程式碼中要如何去抓值呢?例如前端的HTML是下面的方式 < html xmlns = "http://www.w3.org/1999/xhtml" > < head > < title > </ title > < script type="text/javascript" > function AddEl ( ) { var newText = document . createElement ( 'input' ) ; newText . type = "text" ; newText . setAttribute ( "id" , "newID" ) ; newText . setAttribute ( "name" , "newID" ) ; newText . setAttribute ( "onkeypress" , "KeyPress()" ) ; document . getElementById ( 'content' ) . appendChild ( newText ) ; } function TextChangeEvent ( ) { document . getElementById ( 'labMsg' ) . innerText = "TextChange" ; } function KeyPress ( ) { ...

Windows Mobile 6.5 Gestures (一)

圖片
在Windows Mobile 6.5中有提供了兩個新的功能,一個是Widgets,另外就是Gestures API了,今天就來測試看看Gestures的功能。由於Gestures是WM 6.5才有的功能,所以必須要有WM 6.5的模擬器來做測試,如果還沒有安裝過的話,可以到下面位置下載、安裝,請切記,要先安裝Windows Mobile 6 SDK,之後再安裝Windows Mobile 6.5 Developer Tool Kit,順序可不能顛倒喔。 Windows Mobile 6 Professional and Standard Software Development Kits Refresh Windows Mobile 6.5 Developer Tool Kit 接下來,下面是一些有關Gestures的相關參考資料 小歐的這篇-[Windows Mobile]Gestures API 擷取使用者的手勢 Windows Mobile Managed Gestures Sample 這邊可以下載到managed code需要的dll以及相關的sample,裡面也有兩個web cast,記得要看 How Do I: Use Windows Mobiles 6.5 Gestures in Managed Code? MSDN-Using Gestures in Windows Mobile 6.5 How to use the MSDN managed code gesture wrapper in a Windows Mobile 6.5 device project 在一些使用情境中,會有向右或是向左滑動就能夠切換頁面的功能,在以往WM6/6.1的時候,要做到這樣的功能,第一個遇到的問題就是必須要自行去辨識手勢的動作,必須要去掛hook,攔截滑鼠的點擊位置、放開的位置,之後去判斷方向等等,要做的事情滿多的,不是件簡單的事;而現在有了Gestures API之後,像這樣的功能做起來就方便的多了,接下來就來看看今天測試的程式碼了;首先要先加入Gestures dll的參考,加入後會多了像是下圖的name space可以使用 接下來是設計畫面,筆者這邊是用了3個panel來模擬切換畫面的動作,實際在執行的時候會分別去移動panel的位...

VS2003呼叫VS2005的COM DLL

圖片
在.net的環境寫作程式預設就提供了相當多的類別可供使用,寫作程式上也變的相當的方便,但有時候會遇到舊系統的需求新增,或是必須要撰寫DLL(組件)來讓其他使用者做使用的情形;而在這樣的情況,通常會撰寫類別庫,也就是產生出DLL的檔案來供其他人方便使用。而在使用.Net DLL時,在相同版本的.net framework也很方便,只要用加入參考的方式將該DLL加入參考後,就可以開始使用相關的功能;但是在VS2003與VS2005之間互通時卻無法使用加入參考的方式去做,又或者當我們必須要將DLL提供給網頁、VB6這樣的開發環境時,該怎麼辦呢?這篇主要說明一下在VS2003的環境(.net framework 1.1)要怎麼樣去使用VS2005(.net framework 2.0)的COM DLL。 在進入主題之前,這邊先說明一下當要將DLL提供給網頁(ASP)或是VB6使用時應該要怎麼做;在後續同樣的也必須要經過這些步驟才能順利的讓VS2003使用相關的DLL。 首先,要開放給像是VB6這樣的程式使用時,必須要將DLL開放COM介面,讓其他的程式透過COM介面來呼叫,而要怎麼實作呢?請參考Will保哥的文章,相當的清楚,位置再下面這邊 http://blog.miniasp.com/post/2008/07/How-to-write-COM-component-using-NET.aspx 這邊補充一個部分,要將.net組件加入到GAC中時,必須要簽署組件,也就是設定強式名稱(Strong Name),不然會加不進去,簽署的位置會像下圖這樣 好,那麼參考完保哥的文章後,相信大家都可以實作出COM DLL了,接下來就是如何在VS2003中去使用了。 在將相關的DLL安裝到系統上之後,開啟VS2003,選擇加入參考之後,在選單中可以看到我們註冊到系統中的DLL,但是選取後卻會得到一個無情的錯誤 沒關係,沒辦法從IDE加入,還有CreateObject可以使用,所以用了像下面這樣的方式 Dim A As Object = CreateObject("RFTagSDKs.RD1623") 結果卻得到了一個無法產生ActiveX的錯誤訊息,怎麼會這樣呢,主要就是因為.net framework版本的關係;那要怎麼去解決呢?可以參考下面這篇的方式 http:/...

Chinese SMS 在英文ROM上的相關問題 (Kaiser,TyTn2)

圖片
之前對於WM6.5這部分的測試大多是利用模擬器來玩,想說要等官方(HTC)出WM6.5的ROM之後,再來更新;不過等著等著,實在是等的有點煩了(不知道到底會不會出啊~),於是就到xda閒逛(對WM這部分有興趣的 xda forums 一定要去看看),找到了一個WM6.5英文版的ROM,滿喜歡這介面,而且想要在實機上來跑跑看WM6.5,於是乎,就鼓起勇氣給他刷機下去;我刷的ROM是 這個版本 目前是到4.0;至於怎麼刷機呢?這個就請自行參考xda上的說明了,我看的是 這邊 ,for kaiser的,不同機型請自行參考其他相關資料了,也請記得刷機有一定的風險,請三思,並且詳讀說明喔。 刷完了之後,介面看起來的爽度就是不一樣,抓了下面幾張圖,是首頁以及天氣、設定的畫面 是不是還不錯呢?接下來由於刷的是英文的ROM,接下來就該面對一下痛苦的部分了;刷完機在介面上並不是所有中文字都是無法顯示,大多中文字還是可以顯示出來,不過這於事無補..因為..沒有中文輸入法,真糟,不過幸好在 小熊工作室的網站 找到了相關的解決方式,可以將中文輸入法安裝到英文的ROM裡面,之後安裝 sbp keyboard 就有中文輸入可以用了,一切使用上也沒什麼大問題,直到發出中文簡訊給其他人的時候,在我這邊輸入的中文簡訊都是正常的,向是下面這樣 但是接收端收到的卻全部都是"???"這樣的東西,怎麼會這樣哩..orz 直覺是編碼的問題,但一時之間卻也不知道該怎麼處理,後來在 xda的這篇討論 看到了相同的問題,找了一下相關設定後,設定一下,簡訊發送的問題就解決了,原來是要把"需要時使用unicode"的項目給勾選起來,下面抓了幾張圖,有同樣問題的朋友可以參考看看,首先進入到閱讀簡訊的介面後,進入設定頁面 之後找到Option 點選Option之後,會看到如下的設定畫面,接下來要點選*SMS/MMS 之後將"Use Unicode when necesaary"的項目勾選起來就可以了