Time of Update: 2018-12-07
背景我在開發Mobile Sensors API - Native unified APIs for Windows Mobile Sensors Unit Test的過程中,想把Sensor對象的類列印出來,所以需要使用typeid來實現。簡介本文講述在Windows Mobile下如何使用c++的typeid操作符。實現IGSensor* GSensorFactory::CreateGSensor(){try{return HTCGSensor::Create();
Time of Update: 2018-12-07
這是合并的部分,我們要讓在上一篇文章中被分割的檔案再合并起來,建立一個新的項目,相對於上一個項目,只是少了一個combox控制項,因為我們要合并檔案,所以不需要選擇檔案大小,設計圖如下:同樣,引用system.IO,然後,給瀏覽按鈕添加如下代碼: 瀏覽Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->private void
Time of Update: 2018-12-07
現在有好些splash的做法,我的比較簡單,而且如果你的素材不錯的話,應該可以做出很好的效果,這個教程不依賴任何第三方控制項,直接使用vs的就行了,下面這個是預覽圖: 本文開始:我們首先建立一個winform項目,那個form1.cs就先不動他,我們先再建立一個windows視窗,命名為splash,設定表單內容如下:ShowInTaskbar=false:因為是splash視窗,所以不用在工作列顯示了。然後拖動一個progressbar
Time of Update: 2018-12-07
前言:在今天,各大媒體都時興通過簡訊參與活動並中獎的行為,中獎號碼大多用‘*’好掩蓋其手機號碼的中間幾位如:138*****345,今天,我們做的就是用一個類庫來實現這個通用功能,以便在網站和程式中引用。 本文:下面,我們就開始吧,首先,用vs2005建立一個c#類庫,我們命名為NumMask,把他的Class1改名為容易記憶的其他名字,我改稱Masker,然後我們添加如下代碼: NumMaskCode highlighting produced by Actipro
Time of Update: 2018-12-07
在程式開發中,未免需要使用到時間差比較。最簡單的時間比較方法是分別取出目前時間進行相減得出時間差。取出目前時間可以使用GetLocalTime()函數來取出。可是在Windows Mobile和Wince(Windows Embedded CE)平台,使用GetLocalTime()函數取出的SYSTEMTIME是不包含微秒的。解決辦法是使用GetTickCount()函數,先看下面的代碼。int _tmain(int argc, _TCHAR* argv[]){ SYSTEMTIME
Time of Update: 2018-12-07
我實現的網路程式庫中使用了C++11中的shared_ptr. 昨天做profile,發現很多CPU都消耗在shared_ptr上,所以打算看看shared_ptr的效率如何. 實驗是這樣的,弄一個臨時的shared_ptr,然後不停的拷貝,拷貝100W次,看消耗多長時間.實驗對象是gcc 4.6.2和clang 3.1(libc++).最後輸出各自消耗的時間,編譯選項,O0和O2. 上代碼:#include <thread>#include
Time of Update: 2018-12-07
當表示一個double型數值不為數字時,在.net可以這樣表示double d = double.NaN;double.NaN的原型如下://// Summary:// Represents a value that is not a number (NaN). This field is constant.public const double NaN = 0.0 / 0.0;在Native C++,如果想表示一個不為數位double,可以使用下面的函數。double
Time of Update: 2018-12-07
背景不像.NET Compact Framework, 使用Native C++開發開發對話方塊程式預設是沒有菜單的,需要手工增加。本文講述如何為對話方塊程式加入菜單。 .NET Compact Framework使用.NET Compact Framework的程式,預設增加功能表項目(mainMenu1),只要編輯菜單顯示,增加處理事件就能操控菜單了,非常方便。 Native C++使用Native
Time of Update: 2018-12-07
公司一哥們說make_shared構造shared_ptr比new要慢,我表示懷疑.因為make_shared只分配一次記憶體,而new需要分配兩次.所以寫一個demo測試一下.分別測試開啟最佳化,關閉最佳化,還有就是C++11開啟move之後的效能情況.#include <string>#ifdef __GXX_EXPERIMENTAL_CXX0X__#include <memory>using namespace std;#else#include
Time of Update: 2018-12-07
文章目錄 1.在資源檔中建立一個版本資訊項2.根據需求修改版本資訊3.增加取版本資訊函數4.取出版本資訊 在Windows Mobile和Wince(Windows Embedded CE)下開發的產品,有時候需要顯示當前產品的版本資訊。一般來說,版本資訊是儲存在資源檔裡面的,例如: 為了保持一致,所有版本資訊應該都從資源檔讀取,不應該另外寫入程式碼(Hard
Time of Update: 2018-12-07
背景Windows Mobile Sensors API庫的一個重要的功能是自動探索(detect)和判斷(determine)裝置類型,調用相應裝置(HTC或者Samsung)上的Sensor API,並返回統一的結果。因此該庫不能依賴於任何裝置的上的Sensor庫。因此產生了動態載入各自裝置上Sensor庫的需求。關於Windows Mobile Sensors API庫的開發可以參考下面的文章:Mobile Sensors API - Native unified APIs for
Time of Update: 2018-12-07
生產者消費者問題,是永遠的經典. 單純讓多個線程去競爭,佔有資源然後處理,會讓系統的複雜度變得相當複雜,並且整個系統的並發也很難控制.為了讓系統簡單化,流暢化,引入訊息佇列,而且這樣,系統更具有相當高的輸送量.因為做的事情簡單而有效. 根據具體業務的不同,個人(認為)把訊息佇列分為1:1模型,還有就是N:M模型的. 如果消費者的消費能力非常高.個人認為就應該使用1:1的隊列.這種隊列足夠簡單,可以進行各種最佳化,比如避免動態記憶體分配,鎖最佳化,使用lock-free等.這樣可以讓主迴
Time of Update: 2018-12-07
在Windows Mobile和Wince(Windows Embedded CE)下進行Native C++開發,有時候需要取出當前執行檔案的路徑,或者調用模組的路徑資訊,例如在相對路徑下存放了設定檔,本機資料庫檔案等。下面代碼可以完成這個任務:BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){ HINSTANCE hInst = (HINSTANCE)hModule;
Time of Update: 2018-12-07
開發Windows Mobile的程式,使用者體驗很重要,如果執行長時間的任務,使用等待表徵圖可以大大提供使用者體驗,如。 使用MFC開發可以使用下面代碼來顯示和隱藏cursor。BeginWaitCursor(); //Do sth here....EndWaitCursor(); 或者使用下面的代碼SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT)); //do sth here....SetCursor(AfxGetApp()
Time of Update: 2018-12-07
單元測試(Unit Test)已經成為開發過程中不可分割的一部分,也是refactoring的基礎,在Wince和Windows Mobile開發native C++時可以使用CppUnitLite進行單元測試。在其他平台開發C++的時候,我一直使用CppUnit進行單元測試,可是CppUnit不支援Wince平台,因此在Wince下選擇CppUnitLite進行單元測試。CppUnitLite是CppUnit的作者Michael
Time of Update: 2018-12-07
文章目錄 開啟關閉建立刪除增刪改操作交易處理查詢操作 背景進行Windows Mobile的應用的開發,很多時候需要對資料庫進行訪問,儲存和讀取。可是微軟沒有為Native C++提供象ADO.NET下的封裝,所以我自己封裝了一個SqlCe訪問類。簡述本文講述在Windows Mobile和Wince下,Native C++訪問SqlCe的封裝類的實現。由於微軟沒有為C++提供像ADO.NET的封裝,為Native
Time of Update: 2018-12-07
由於工作關係,現在專註於Windows Phone,Windows Embedded CE(WinCE)和Windows Mobile,.NET Compact Framework, Native C++領域的開發,把工作上的一些經驗和知識進行總結,文章會不斷完善。關於我 Jake Lin 。 Windows Phone Mircosoft 正式把Windows Mobile改名為Windows Phone,你會因此而購買Windows Phone嗎?Windows Phone is here
Time of Update: 2018-12-07
路由器名字路由器子網路遮罩路由器網路地址r1255.255.252.0130.50.15.0路由選擇演算法可以說是在路由器這個網路層就解決的問題了,最近學習了路由選擇演算法,所以把它實現為程式,方便以後的計算。
Time of Update: 2018-12-07
最近,對列印票據比較感興趣,索性研究了一下。發現大致有兩種方式:1、用.net的代碼來控制和設定列印的頁面大小、內容位置,這種方法比較準確,但是你要一遍一遍的實驗那些座標,這個過程也許會花費你很長時間。2、把與列印的票據用掃描器掃入電腦,如果是15`的顯示器,那麼基本是1:1的大小,再大一點的顯示器就適當調整掃描進入的票據大小即可,然後把這個掃描圖引入form裡面作為底圖,把label空間放入對應的底圖空白處(就是你想列印資料的地方),讓後,把底圖去了,現在這些label就在對應的位置,以後要列
Time of Update: 2018-12-07
進行基於.NET CompactFramework的開發有段時間了,漸漸地BOSS們發現僅位於Windows mobile平台的應用已經遠遠不夠,我們內部也做過一次調查,參加調查的人數大概一百多人,僅有10%的人使用的是基於Windows mobile的手機,85%用的是S60