• <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>

            2008年5月26日

            輸出文件的設(shè)置

               VS2005中輸出文件的路徑可以在[Project]-[Project Propertys]-[Linker]-[General]選項(xiàng)卡中的Output File處指定。

               前幾天突然發(fā)現(xiàn)對(duì)于DLL項(xiàng)目的LIB文件的輸出路徑也可以設(shè)置,設(shè)置位置為:
            [Project]-[Project Propertys]-[Linker]-[Advanced]選項(xiàng)卡中的Import library處指定。
            看來(lái)這個(gè)名稱(chēng)不能只看字面意思。

            posted @ 2008-05-26 11:51 迷宮の未來(lái) 閱讀(452) | 評(píng)論 (1)編輯 收藏

            GSensor的角度計(jì)算

               目前負(fù)責(zé)關(guān)于GSensor的模式識(shí)別,這里貼出自己的研究成果,供自己備忘。
            ACCEL_DIRECTION CGSensorModule::CalDirection(smb380acc_t& a_xyz,const unsigned char nAccelRange, double* pdbAngle)
            {
                ACCEL_DIRECTION adNew 
            = AD_UNKNOWN;
                
            double dbAngle = 0;
                
            // expressions: tan(angle) = a_xyz.x / a_xyz.y
                
            // angle is start from AD_LAYRIGHT

                
            // notice:    1. a_xyz.x and a_xyz.y should not be small together, so we need to give a liminal value
                
            //            2. the a_xyz.z should be enough small to ensure the G-Sensor is vertical,
                
            //                the degree is 45, means abs(a_xyz.z) should not larger than nAccelRange*sin(45)
                if((abs(a_xyz.x) < nAccelRange/10
                    
            && (abs(a_xyz.y) < nAccelRange/10)
                    
            || abs(a_xyz.z) > (nAccelRange*0.707))
                
            {
                    dbAngle 
            = nAccelRange;
                    
            return AD_UNKNOWN;
                }


                
            float fTanValue = float(a_xyz.y)/float(a_xyz.x);
                dbAngle 
            = atan(fTanValue);
                
            // AD_LAYRIGHT or AD_LAYLEFT
                if(fTanValue>-1 && fTanValue<1)
                
            {
                    
            if(a_xyz.x>0)
                    
            {
                        adNew 
            = AD_LAYRIGHT;
                    }

                    
            else
                    
            {
                        dbAngle 
            += PI;
                        adNew 
            = AD_LAYLEFT;
                    }

                }

                
            else
                
            {
                    
            if(a_xyz.y>0)
                    
            {
                        
            if (dbAngle<0)
                            dbAngle 
            += PI;
                        adNew 
            = AD_LAYUP;
                    }

                    
            else
                    
            {
                        
            if (dbAngle>0)
                            dbAngle 
            -= PI;
                        adNew 
            = AD_LAYDOWN;
                    }

                }


                
            if(dbAngle<0)
                    dbAngle
            +=(PI*2);

                
            if(pdbAngle != NULL)
                    
            *pdbAngle = dbAngle;
                
            return adNew;
            }


            BOOL CGSensorModule::GetDirection(ACCEL_DIRECTION
            & adNew, double* pdbAngle)
            {
                CHECK_GSENSOR_HANDLE();
                smb380acc_t a_xyz;
                unsigned 
            char nRange;
                
            if(!GetAccelXYZT(a_xyz))
                
            {
                    
            return FALSE;
                }

                
            if(!GetRange(nRange))
                
            {
                    
            return FALSE;
                }

                adNew 
            = CalDirection(a_xyz,MAX_ACCELRANGE/(2<<nRange),pdbAngle);
                
            return TRUE;
            }

            posted @ 2008-05-26 11:37 迷宮の未來(lái) 閱讀(4089) | 評(píng)論 (4)編輯 收藏

            得到最前端AP的名稱(chēng)

               PC上和WCE上對(duì)于獲取最前端AP的名稱(chēng)方法不同。

               PC上的做法:
            TCHAR szApName[MAX_PATH];
            TCHAR szExeName[MAX_PATH]
            ={0};
            HWND hWnd 
            = ::GetForegroundWindow();
            HMODULE hModule 
            = (HMODULE)GetClassLong(hWnd, GCL_HMODULE);
            if(hModule!=NULL)
            {
                
            if(GetModuleFileName(hModule, szApName, MAX_PATH))
                
            {
                    
            // here got the ap name: szApName
                }

            }



               WCE上的做法:
            TCHAR szApName[MAX_PATH];
            TCHAR szExeName[MAX_PATH]
            ={0};
            HWND hWnd 
            = ::GetForegroundWindow();
            DWORD dwProcessID
            =0;
            ::GetWindowThreadProcessId(hWnd,
            &dwProcessID);
            HANDLE hProcess 
            = OpenProcess(00, dwProcessID);
            if(hProcess!=NULL)
            {
                
            if(GetModuleFileName((HMODULE)hProcess, szApName, MAX_PATH))
                
            {
                    
            // here got the ap name: szApName
                }


                CloseHandle(hProcess);
            }


               這里可以看出,差別在于獲得Process的句柄上,由于PPC上不支持GetClassLong函數(shù)對(duì)于GCL_HMODULE參數(shù)的定義,所以才有這樣的差別。

            posted @ 2008-05-26 11:29 迷宮の未來(lái) 閱讀(555) | 評(píng)論 (0)編輯 收藏

            關(guān)于WCE中的LNK文件

                 摘要: WCE的[Windows]-[Start Menu]下有很多的LNK文件,這些是AP的快捷方式。很多程序都喜歡遍歷出PPC上的AP,然后進(jìn)行設(shè)置操作,在該目錄下進(jìn)行遍歷是很常見(jiàn)的一種做法。  閱讀全文

            posted @ 2008-05-26 11:11 迷宮の未來(lái) 閱讀(1925) | 評(píng)論 (2)編輯 收藏

            WM_SIZE處理

               WCE中變化屏幕方向或者輸入法伸展收縮時(shí)會(huì)觸發(fā)WM_SIZE消息,該消息處理中可以進(jìn)行控件的位置移動(dòng)操作。
               
               這里用源碼來(lái)說(shuō)明一切:

            void CMyDlg::OnSize(UINT nType, int cx, int cy)
            {
                CDialog::OnSize(nType, cx, cy);

                
            // TODO: Add your message handler code here
                RECT rect, rectTree;
                GetClientRect(
            &rect);
                m_MyCtrl.GetWindowRect(
            &rectTree);
                ScreenToClient(
            &rectTree);
                rectTree.right 
            = rect.right-rectTree.left;
                rectTree.bottom 
            = rect.bottom;
                m_MyCtrl.MoveWindow(
            &rectTree);
            }


               所有的RECT都是相對(duì)客戶(hù)區(qū)域的位置,m_MyCtrl.GetWindowRect(&rectTree); ScreenToClient(&rectTree);這兩行代碼不能替換成m_MyCtrl.GetClientRect(&rectTree); 一行代碼,因?yàn)镚etClientRect始終都是得到整個(gè)客戶(hù)區(qū)域的位置,而不是控件的位置。

            posted @ 2008-05-26 10:35 迷宮の未來(lái) 閱讀(1899) | 評(píng)論 (3)編輯 收藏

            WCE下的CPL開(kāi)發(fā)介紹

                 摘要: WCE下的控制面板程序(CPL)與PC上的CPL開(kāi)發(fā)有些許的不同,但總體上是一致的。這里總結(jié)一下在開(kāi)發(fā)CPL時(shí)的思路。  閱讀全文

            posted @ 2008-05-26 10:15 迷宮の未來(lái) 閱讀(1676) | 評(píng)論 (0)編輯 收藏

            2008年1月30日

            通用對(duì)話(huà)框會(huì)導(dǎo)致程序CRUSH?

                 摘要: 通用對(duì)話(huà)框會(huì)導(dǎo)致程序CRUSH的解決方案  閱讀全文

            posted @ 2008-01-30 09:19 迷宮の未來(lái) 閱讀(1596) | 評(píng)論 (3)編輯 收藏

            2008年1月23日

            智能指針的幾點(diǎn)錯(cuò)誤操作心得

                 摘要: ADO操作經(jīng)常使用到智能指針,這篇文章介紹了使用智能指針時(shí)需要注意的幾點(diǎn)  閱讀全文

            posted @ 2008-01-23 16:30 迷宮の未來(lái) 閱讀(3299) | 評(píng)論 (3)編輯 收藏

            2008年1月22日

            (轉(zhuǎn)貼)C/C++程序內(nèi)存泄漏檢測(cè)

                 摘要: 檢測(cè)內(nèi)存泄露的三種方法  閱讀全文

            posted @ 2008-01-22 09:48 迷宮の未來(lái) 閱讀(1632) | 評(píng)論 (3)編輯 收藏

            2007年12月12日

            MFC中一個(gè)容易被忽視的問(wèn)題

                 摘要: MFC對(duì)話(huà)框模式的程序經(jīng)常有這樣一種業(yè)務(wù)需求:

            對(duì)話(huà)框初始化 --> 取得數(shù)據(jù) --> 將數(shù)據(jù)顯示到對(duì)話(huà)框的控件中

            該流程有一個(gè)潛在的問(wèn)題...  閱讀全文

            posted @ 2007-12-12 10:48 迷宮の未來(lái) 閱讀(2107) | 評(píng)論 (11)編輯 收藏

            僅列出標(biāo)題  下一頁(yè)
            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(10)

            隨筆檔案

            文章檔案

            最新隨筆

            搜索

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久91精品国产91久久户| 久久精品人成免费| 2021国内久久精品| 麻豆亚洲AV永久无码精品久久| 996久久国产精品线观看| 香蕉久久永久视频| 97久久久久人妻精品专区 | 久久精品亚洲日本波多野结衣| 久久91综合国产91久久精品| 久久人人爽人人爽人人片AV不 | 亚洲国产成人精品91久久久 | 99久久精品国产一区二区蜜芽| 久久精品极品盛宴观看| 伊人久久免费视频| AV无码久久久久不卡网站下载| 尹人香蕉久久99天天拍| 精品欧美一区二区三区久久久| 99久久国产热无码精品免费| 久久精品国产亚洲αv忘忧草| 久久精品中文字幕一区| 青青草国产成人久久91网| 精品无码久久久久久尤物| 99精品国产99久久久久久97| 蜜桃麻豆www久久国产精品| 国产精品嫩草影院久久| 91精品国产综合久久四虎久久无码一级| 欧美精品九九99久久在观看| 久久久久一级精品亚洲国产成人综合AV区| 久久精品a亚洲国产v高清不卡| 久久AV高潮AV无码AV| 久久精品国产久精国产果冻传媒| 久久精品亚洲男人的天堂| 久久久久久噜噜精品免费直播| 欧美激情精品久久久久| 伊人久久综合热线大杳蕉下载| 久久精品视频网| 久久91精品综合国产首页| 久久这里只有精品视频99| 青青久久精品国产免费看| 人妻无码αv中文字幕久久琪琪布| 久久毛片一区二区|