• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            春暖花開
            雪化了,花開了,春天來了
            posts - 149,comments - 125,trackbacks - 0

             

            目前我自己只知道三種方法

            一、LoadBitmap

            功能:

                可從一個執行模塊中載入指定的位圖。

            原型:

            HBITMAP LoadBitmap(
              __in  HINSTANCE hInstance,
              __in  LPCTSTR lpBitmapName
            );

            參數:

            hInstance [in]

            包含位圖的模塊句柄

            lpBitmapName [in]

            ’\0’結尾的字符串,包含將要載入位圖資源名字。可使用MAKEINTRESOURCE將資源ID號轉換。

            返回值:

            如果成功,返回位圖句柄,否則返回NULL

            備注:

                如果文件名不存在或內存不足,函數執行失敗。

            當不再使用LoadBitmap對象時,調用DeleteObject刪除該對象。

            示例:

            HBITMAP hBitmap = LoadBitmap(g_hInstance, MAKEINTRESOURCEIDB_BMP);

            二、SHLoadImageResource

            功能:

            將視圖文件轉換成位圖文件。視圖資源文件必須在資源文件中包含。

            原型:

            HBITMAP SHLoadImageResource (
            HINSTANCE hinst,
            UINT uIdImageFile
            );

            參數:

            hinst

            in】資源句柄

            uIdImageFile

            in】視圖文件標號

            返回值:

            如果成功,返回位圖句柄,否則返回NULL

            備注:

            轉換文件的類型包括GIFPNGJPGICOBMP

            當不再使用SHLoadImageResource對象時,調用DeleteObject刪除該對象。

            示例:

            HBITMAP hBitmap = SHLoadImageResource(g_hInstance, IDR_IMAGE);

            三、SHLoadImageFile

            功能:

            讀取視圖文件,解壓并返回位圖句柄。

            原型:

            HBITMAP SHLoadImageFile (
              LPCTSTR pszFileName

            );

            參數:

            pszFileName 
            [in] 將要載入的視圖文件名

            返回值:

            如果成功,返回位圖句柄,否則返回NULL

            備注:

            轉換文件的類型包括GIFPNGJPGICOBMP

            當不再使用SHLoadImageResource對象時,調用DeleteObject刪除該對象。

            示例:

                HBITMAP hBmp = SHLoadImageFile(

                      (TEXT("\\My Documents\\My Pictures\\Waterfall.jpg")));

            posted @ 2009-04-22 20:45 Sandy 閱讀(2059) | 評論 (0)編輯 收藏
                 摘要: SHELLEXECUTEINFO 和 ShellExecuteEx的簡單使用  閱讀全文
            posted @ 2009-04-22 14:02 Sandy 閱讀(35452) | 評論 (0)編輯 收藏
            轉: http://tech.ddvip.com/2008-09/122062103760957.html

            程序中如果要使用http或socket連接服務器,需要先連接網絡。ConnMgrEstablishConnectionSync函數中的CONNMGR_CONNECTIONINFO參數,不論采用IID_DestNetWAP還是IID_DestNetInternet,似乎都要依賴于手機上的接入點設置。都怪中國移動非要搞什么CMNET、CMWAP,中國特色的通信公司。

              可以自行創建一接入點。以下代碼創建一個CMWAP接入點:

            CString strFavoriteXml =
            L"<wap-provisioningdoc>"
            L"<characteristic type="CM_Networks">"
            L"<characteristic type="Test_GPRS">"
            L"<parm name="DestId" value="{D1D06580-C364-55ec-9421-6ACF34129C58}" />"
            L"</characteristic>"
            L"</characteristic>"
            L"<characteristic type="CM_GPRSEntries">"
            L"<characteristic type="Test_GPRS">"
            L"<parm name="DestId" value="{D1D06580-C364-55ec-9421-6ACF34129C58}" />"
            L"<characteristic type="DevSpecificCellular">"
            L"<parm name="BearerInfoValid" value="1" />"
            L"<parm name="GPRSInfoValid" value="1" />"
            L"<parm name="GPRSInfoProtocolType" value="2" />"
            L"<parm name="GPRSInfoL2ProtocolType" value="PPP" />"
            L"<parm name="GPRSInfoAccessPointName" value="cmwap" />"
            L"<parm name="GPRSInfoAddress" value="" />"
            L"<parm name="GPRSInfoDataCompression" value="1" />"
            L"<parm name="GPRSInfoHeaderCompression" value="1" />"
            L"<parm name="GPRSInfoParameters" value="" />"
            L"</characteristic>"
            L"</characteristic>"
            L"</characteristic>"
            L"<characteristic type="CM_ProxyEntries">"
            L"<characteristic type="WAP">"
            L"<parm name="SrcId" value="{D1D06580-C364-55ec-9421-6ACF34129C58}" />"
            L"<parm name="DestId" value="{436EF144-B4FB-4863-A041-8F905A62C572}" />"
            L"<parm name="Proxy" value="10.0.0.172:80" />"
            L"<parm name="Enable" value="1" />"
            L"<parm name="Type" value="1" />"
            L"</characteristic>"
            L"</characteristic>"
            L"</wap-provisioningdoc>";
              
            LPWSTR pszwXMLout = NULL;
            HRESULT hr = DMProcessConfigXML(strFavoriteXml, CFGFLAG_PROCESS, &pszwXMLout);
              
            if ( pszwXMLout )
            {
             delete [] pszwXMLout;
             pszwXMLout = NULL;
            }

            posted @ 2009-04-21 14:54 Sandy 閱讀(957) | 評論 (0)編輯 收藏
            http://radovi.javaeye.com/blog/322096這篇博客里談到計算機計算浮點數時的舍入誤差,我也在VS2005下進行了相應的實驗,如下代碼:

            #include <iostream>

            using namespace std;

            int main()
            {
                
            double f = 4.35;

                
            int a = int(f*100);

                cout 
            << a << endl;

                system(
            "pause");
            }

             的確打印出來的結果是434.

            老男孩給出的解釋是這樣的:
            這個問題和二進制的表示有很大關系
            簡單地說
            計算機不能準確表示諸如1/10等一類分數

            我查到了一篇文章:http://support.microsoft.com/kb/214118/zh-cn,如下,
                   IEEE 754 標準是一種方法很容易操作的壓縮方式存儲浮點數。 Intel coprocessors 和實現浮點數學的大多數基于 PC 的程序使用此標準。
                   IEEE 754 指定編號,以減少存儲要求,并允許該內置二進制算法指令來處理數據以相對較快速的方式的所有微處理器上可用的二進制格式存儲。 但是,是簡單的、 非重復的十進制數字的某些數字轉換為重復不能存儲的完美的準確性的二進制數字。
                  例如數 1 / 10 可以表示簡單小數的十進制數字系統中:
                  .1
                 但是,二進制格式中的數目將十進制重復的二進制文件:
                 0001100011000111000111 (和這樣上)
                 此數字無法表示按有限數量的空間。 因此,此數字向下舍入的大約-2.78E-17 存儲。
                  如果獲取給定的結果執行多個的算術運算,這些舍入誤差可能具有累積性。

                  看來是和二進制的表示有很大關系。
            posted @ 2009-04-15 13:38 Sandy 閱讀(2575) | 評論 (1)編輯 收藏
            很長時間沒有用Cellular Emulator ,使用上都有一些遺忘. 所以千萬別相信自己什么都能記住啊.

            摘自: http://www.cnblogs.com/upto/archive/2007/02/14/649769.html 
                     黎波老師的博客

            Windows Mobile 6 SDK 中的 Cellular Emulator

            現在的 Windows Mobile 設備大多數都擁有電話和其他無線通信的功能。在許多情況下,你想讓你的應用程序跟這些通信功能進行交互。例如,你想在電話響起的時候,將你的應用程序播放音樂的聲音調小;或者需要直接對通信硬件進行各種操作。那么開發這種類型的應用程序往往比較困難,最大的難點在于測試應用程序。

            為了解決測試這種應用程序的困難,Windows Mobile 6 SDK 包含了 Cellular Emulator(蜂窩仿真器)。Cellular Emulator 讓你能夠在 Device Emulator 中,測試你的應用程序在各種蜂窩通信的情況下的行為。



            Cellular Emulator 是一個強大的測試工具,它可以用于測試你的應用程序在蜂窩通信狀況變化時的行為。用 Cellular Emulator 可以執行一些簡單的測試,如:在仿真器中撥打電話,接聽來電和掛斷電話,發送和接收 SMS 信息等。為了讓開發人員可以測試更復雜的功能,Cellular Emulator 還支持對 SIM 配置信息的修改,還有選擇2G網絡還是3G網絡。所有這些測試工作都不需要用到一臺物理設備。

            要讓 Cellular Emulator 和 Device Emulator 可以一起配合使用,首先你需要把他們關聯起來。
            1. 記下 Cellular Emulator 左下角狀態欄的 COM 端口號。如 COM5。
            2. 在 Device Emulator 中選擇“File-->Configure...”菜單項,打開 Emulator Properties 對話框。
            3. 在 Emulator Properties 對話框中選擇 Peripherals 選項卡。
            4. 把剛才記下的 COM 端口號輸入到 Serial Port 0 文本框中。如果你在下拉列表中找不到你的端口號,可以自己輸入進去。
            5. 點擊 OK 按鈕保存設置,關閉 Emulator Properties 對話框。
            6. 點擊“File-->Reset-->Soft”菜單項,對仿真器進行軟重置操作。



            待仿真器完成重置過程并重新啟動后,你將會看到仿真器的蜂窩網絡已經可用了。如果還是不行,可能是安裝了 Windows Mobile 6 SDK 之后,沒有重新啟動系統的原因吧。

            給仿真器撥打電話
            打開 Cellular Emulator 的 Call Manager 選項卡,在 Phone Number 文本框中輸入任意一個電話號碼,點擊旁邊的 Dial 按鈕,仿真器的電話鈴聲將響起,并顯示來自所輸入的電話號碼的來電。這時在 Active Calls 列表中將出現仿真器上的活動通話,Status 顯示為 Incoming。
            用7272024這個電話號碼向仿真器撥打電話:


            仿真器收到電話號碼為7272024的來電:


            從仿真器撥打電話
            Preset Number 列表中提供了4個可供測試的電話號碼。Busy 表示線路忙,Reject 表示拒絕接聽,Hang Up After Connect 表示接聽后再掛斷,No Answer 表示沒有回應。嘗試在仿真器中撥打7272021,Cellular Emulator 的 Active Calls 列表將顯示仿真器當前的活動通話。電話接通后持續了10秒鐘,然后掛斷,也就是Hang Up After Connect




            向仿真器發送 SMS 信息
            打開 Cellular Emulator 的 SMS 選項卡,在 Send to device 的多行文本框中輸入短信內容,然后點擊 Send 按鈕將短信發送至仿真器。


            仿真器將收到新短信:


            還可以設置重復發送。選中 Repeatly 檢查框,設定好 Interval(間隔時間)和 Max Count(最大數目),然后再點擊 Send 按鈕即可。如果你在仿真器中回復了信息,將會在 Cellular Emulator 的 Receive from device 列表中看到你回復的短信。


            選擇網絡
            打開 Cellular Emulator 的 Network 選項卡,可以選擇2G或者3G網絡,斷開 GPRS 連接,查看數據通道等。


            執行和查看 AT 命令
            打開 Cellular Emulator 的 Injection 選項卡,這里可以向仿真器發送 AT 命令或事件。


            打開 Cellular Emulator 的 AT log 選項卡,可以看到剛才所有對仿真器的操作對應的 AT 命令。


            使用配置文件
            這里可以選擇使用哪一個 SIM 配置文件,文件內容是 XML 格式。


            總結
            有了 Cellular Emulator 的配合,Device Emulator 顯得更加強大。現在 Windows Mobile 6 開發人員可以使用仿真器進行開發和測試,而不需要購買各種真實設備。遺憾的是,Cellular Emulator 并不支持 Windows Mobile 5.0 和 Windows Mobile 2003 的仿真器。不過好在 Windows Mobile 6 的 API 跟 Windows Mobile 5.0 的絕大部分一樣,所以你可以在 Windows Mobile 6 的仿真器中開發和調試 Windows Mobile 5.0 的應用程序。對于 Windows Mobile 2003 可能測試效果沒有那么一致,你也可以自己嘗試一下。

            參考:
            What's New for Developers in Windows Mobile 6

            posted @ 2009-04-15 09:59 Sandy 閱讀(1939) | 評論 (0)編輯 收藏
                    昨天一直在調一段代碼,流程是這樣的:我在某個界面程序里先放置了一個對話框A,用戶選擇是或否。選擇是后,會再彈出一個對話框B,并觸發一個事件,然后再啟動一個對話框C。這些對話框是模態的。

                    邏輯感覺很對,沒有問題。但是界面的異常讓我是頭疼。A對話框選擇是后,B對話框顯示不完全,在C對戶框顯示的時候,文字顯示又有異常。檢查了一下,原來EndDialog沒有執行成功。使用GetLastError獲取的錯誤值也是正確的。
              
                    惆悵了……,后來利用線程,去執行那個事件,界面也正常了。

                    這是為什么呢?
                     我個人覺得是事件的執行影響到了界面的刷新,因為我的事件是在界面的程序里面執行的。它對界面消息進行了阻塞,導致界面不能刷新。
                      這個問題,不是我第一次遇到,以前也遇到過這樣的問題,沒有總結。總結一下,不要再犯了。
              
            posted @ 2009-04-14 09:10 Sandy 閱讀(394) | 評論 (0)編輯 收藏

            Windows Mobile上聯系人的信息可分別存儲在手機和SIM卡中。我嘗試過從手機,即所謂的Outlook聯系人中讀取聯系人的信息,但是還沒有嘗試過從sim卡中讀取聯系人的信息,心里也一直默認為難吧。今天查了一下,發現竟然這么簡單,相比outlook的讀取方式來說,簡單很多。

            我們先來定義個結構

            typedef struct {
              TCHAR szName[32];
              TCHAR szTelNum[32];
            }CONTACTSTRUCT;

            要使用SIM的相關文件,需要包含頭文件 simmgr.h

            首先要初始化一下
            HSIM lphSim;  
             HRESULT hr = SimInitialize(0, NULL, 0, &lphSim);
            if(FAILED(hr))  
             {
              return;
             }

            其次獲取總共使用的多少條記錄與總共可以容納的記錄條數  
             DWORD dwUsed,dwTotal;  
             hr = SimGetPhonebookStatus(lphSim, SIM_PBSTORAGE_SIM, &dwUsed, &dwTotal);

            然后我們讀取聯系人的信息
            定義一個
            std::vector<CONTACTSTRUCT> vContact;

             for(int i=0; i<dwTotal; i++)      
             {
              //對結構初始話以下  
              SIMPHONEBOOKENTRY phoneent;  
              memset(&phoneent,0,sizeof(phoneent));  
              phoneent.cbSize = sizeof(phoneent);

              if (SUCCEEDED(SimReadPhonebookEntry(lphSim, SIM_PBSTORAGE_SIM, i+1, &phoneent)))
              {
               CONTACTSTRUCT tempContact = {0};

               wcsncpy(tempContact.szName, phoneent.lpszText, 31); // 姓名
               wcsncpy(tempContact.szTelNum, phoneent.lpszAddress, 31); // 電話

               vContact.push_back(tempContact );
              }
             }

             //最后別忘了清理      
             SimDeinitialize(lphSim);
             lphSim = NULL;

            這里讀取的時候用了dwTotal,是因為聽有經驗的人說,sim卡的存儲可能不連續,如果用dwUsed的話,可能會有問題。

            積累一下,有時間再好好看一下outlook聯系人的。

            參考文章:
            Pocket 中獲取SIM卡中聯系人信息
            http://blog.csdn.net/xulg1984/archive/2008/05/30/2497712.aspx

            posted @ 2009-04-09 15:20 Sandy 閱讀(3079) | 評論 (0)編輯 收藏
                 摘要: 意氣風發、躊躇滿志,不覺感嘆萬千……本文是自己工作6年的經歷沉淀或者經驗提煉,希望對所有的軟件工程師們有所幫助,早日實現自己的人生目標。本文主要是關于軟件開發人員如何提高自己的軟件專業技術方面的具體建議,前面幾點旨在確定大的方向,算是廢話吧。  1、分享第一條經驗:“學歷代表過去、能力代表現在、學習力代表未來。”其實這是一個來自國外教育領域...  閱讀全文
            posted @ 2009-04-08 13:48 Sandy 閱讀(292) | 評論 (1)編輯 收藏

            轉自: http://www.cnblogs.com/dotnetearthworm/archive/2009/02/02/1382488.html

            .sln
            :解決方案文件,為解決方案資源管理器提供顯示管理文件的圖形接口所需的信息。

            .csproj:項目文件,創建應用程序所需的引用、數據連接、文件夾和文件的信息。

            .aspx:Web 窗體頁由兩部分組成:視覺元素(HTML、服務器控件和靜態文本)和該頁的編程邏輯。Visual Studio 將這兩個組成部分分別存儲在一個單獨的文件中。視覺元素在.aspx 文件中創建。

            .ascx:ASP.NET的用戶控件(也叫做“pagelets”),是作為一種封裝了特定功能和行為(這兩者要被用在Web應用程序的各種頁面上)的Web頁面被開發的。一個用戶控件包含了HTML、代碼和其他Web或者用戶控件的組合,并在Web服務器上以自己的文件格式保存,其擴展名是*.ascx。ASP.NET里的缺省配置并不允許Web客戶端通過URL來訪問這些文件,但是這個網站的其他頁面可以集成這些文件里所包含的功能。

            .aspx.cs:Web 窗體頁的編程邏輯位于一個單獨的類文件中,該文件稱作代碼隱藏類文件(.aspx.cs)。

            .cs: 類模塊代碼文件。業務邏輯處理層的代碼。

            .asax:Global.asax 文件(也叫做 ASP.NET 應用程序文件)是一個可選的文件,該文件包含響應 ASP.NET 或 HTTP 模塊引發的應用程序級別事件的代碼。

            .config:Web.config 文件向它們所在的目錄和所有子目錄提供配置信息。

            .aspx.resx/.resx:資源文件,資源是在邏輯上由應用程序部署的任何非可執行數據。通過在資源文件中存儲數據,無需重新編譯整個應用程序即可更改數據。 51aspx.com

            .XSD:XML schema的一種.從DTD,XDR發展到XSD

            .pdb:PDB(程序數據庫)文件保持著調試和項目狀態信息,從而可以對程序的調試配置進行增量鏈接。

            .suo:解決方案用戶選項,記錄所有將與解決方案建立關聯的選項,以便在每次打開時,它都包含您所做的自定義設置。

            .asmx:.asmx文件包含 WebService 處理指令,并用作 XML Web services 的可尋址入口點 51aspx。

            .vsdisco(項目發現)文件 基于 XML 的文件,它包含為 Web 服務提供發現信息的資源的鏈接 (URL-51aspx )。

            .htc:一個HTML文件,包含腳本和定義組件的一系列HTC特定元素.htc提供在腳本中implement組件的機制

            來源: .Net中文社區(http://www.aspxcs.net/)

            上面是我看到的一些介紹,這里再補充一些:
              .clw   支持ClassWizard  
              .ncb   支持ClassView  
              .opt   保存工作空間的配置  
              .aps   支持ResourceView  
              .bsc   瀏覽器信息文件  
              .dsp   項目文件  
              .dsw   工作空間文件  
              .mak   外部的創建文件  
              .plg   建立日志文件 

            posted @ 2009-04-08 13:43 Sandy 閱讀(1244) | 評論 (3)編輯 收藏
             對于warning C4005: 'WINVER' : macro redefinition的處理

             在Windows.h中有如下定義:  
              #ifndef   WINVER  
              #define   WINVER   0x0400  
              #endif  
              如果你把#define   WINVER   0x500置于#include   <windows.h>之前,就不會出現警告.   

            摘自:http://topic.csdn.net/t/20020103/15/456195.html
            posted @ 2009-04-07 15:22 Sandy 閱讀(8075) | 評論 (0)編輯 收藏
            僅列出標題
            共15頁: First 5 6 7 8 9 10 11 12 13 Last 
            亚洲欧美成人综合久久久| 青草国产精品久久久久久| 国产成人精品久久一区二区三区av | 久久精品无码一区二区三区| 精品国产乱码久久久久久呢 | 精品国产VA久久久久久久冰 | 精品久久亚洲中文无码| 人妻少妇久久中文字幕一区二区 | 久久青青草原国产精品免费| 久久久国产精品| 日韩久久久久久中文人妻| 日本精品久久久中文字幕| 精品久久久久久久国产潘金莲 | 2020久久精品亚洲热综合一本| 国产午夜福利精品久久2021| 久久久久无码专区亚洲av| 国产成年无码久久久久毛片| 久久精品国产欧美日韩99热| 伊人热人久久中文字幕| 97久久国产露脸精品国产| 天天做夜夜做久久做狠狠| 国产精品欧美久久久久天天影视| 久久久久久久久久久久久久| 久久久精品日本一区二区三区| 国产精品久久久久久影院 | 99热精品久久只有精品| 久久99国产精品尤物| 亚洲狠狠婷婷综合久久蜜芽| 久久亚洲欧洲国产综合| 久久美女网站免费| 亚洲一区二区三区日本久久九| 久久精品国产亚洲AV无码麻豆| 亚洲国产欧洲综合997久久| 欧美一区二区久久精品| 伊人久久大香线蕉AV一区二区| 久久精品中文字幕一区| 久久久久亚洲AV无码去区首| 国产精品欧美久久久久天天影视| 97久久精品人人澡人人爽| 999久久久国产精品| 久久精品成人影院|