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

            CDateTimeCtrl 設(shè)定為“ShowNone” 為 True
            2.Format 初始化
            CDateTimeCtrl m_Date1;
            m_Date1.SetFormat(_T("yyyy'- 'MM'- 'dd"));
            3.Format初始化選擇確認(rèn)框為空
            CDateTimeCtrl m_Date1;
            ::SendMessage( this->m_Date1.m_hWnd,(UINT)DTM_SETSYSTEMTIME,GDT_NONE, NULL);

            4.Format初始化選擇確認(rèn)框變化是產(chǎn)生的動作

            voidPageDialog4::OnDtnDatetimechangeDatetimepicker1(NMHDR *pNMHDR,LRESULT *pResult)
            {
            LPNMDATETIMECHANGE pDTChange =reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
            // TODO: 在此添加控件通知處理程序代碼
            if(pDTChange->dwFlags == GDT_NONE)
            {
            this->m_Date2.EnableWindow(FALSE);
            }
            else if (pDTChange->dwFlags == GDT_VALID)
            {
            if( this->m_Date2.IsWindowEnabled() == FALSE)
            {
            this->m_Date2.EnableWindow(TRUE);
            CTime theTime = CTime::GetCurrentTime();
            this->m_Date1.SetTime(&theTime);
            this->m_Date2.SetTime(&theTime);
            }
            }

            *pResult= 0;
            }

            5.獲取時間

            CTimetimeTime;
            CString szDate;
            CDateTimeCtrl* pCtrl =&this->m_Date1;
            DWORD dwResult =pCtrl->GetTime(timeTime);
            if (dwResult == GDT_VALID)
            {
            szDate = timeTime.Format(TEXT("%Y/%m/%d"));
            }

            獲取時間的第二種方法:


            6.根據(jù)Format格式設(shè)定時間

            CTime theTime = CTime::GetCurrentTime();
            this->m_Date1.SetTime(&theTime);

            posted @ 2012-11-06 15:03 Mumoo 閱讀(4016) | 評論 (0)編輯 收藏
             
            本文轉(zhuǎn)載至http://m.shnenglu.com/jialisoft/archive/2012/10/11/193149.html
             

            學(xué)習(xí)VC++時經(jīng)常會遇到鏈接錯誤LNK2001,該錯誤非常討厭,因為對于編程者來說,最好改的錯誤莫過于編譯錯誤,而一般說來發(fā)生連接錯誤時,編譯都已通過。產(chǎn)生連接錯誤的原因非常多,尤其LNK2001錯誤,常常使人不明其所以然。如果不深入地學(xué)習(xí)和理解VC++,要想改正連接錯誤LNK2001非常困難

            unresolved external symbol (不確定的外部符號)。

            如果連接程序不能在所有的庫和目標(biāo)文件內(nèi)找到所引用的函數(shù)、變量或標(biāo)簽,將產(chǎn)生此錯誤消息。一般來說,發(fā)生錯誤的原因有兩個:

            (1) 所引用的函數(shù)、變量不存在、拼寫不正確或者使用錯誤;

            (2) 可能使用了不同版本的連接庫。

            以下是可能產(chǎn)生LNK2001錯誤的原因:   
            1. 由于編碼錯誤導(dǎo)致的LNK2001   
            (1) 不相匹配的程序代碼或模塊定義(.DEF)文件能導(dǎo)致LNK2001。例如,   如果在C++   源文件內(nèi)聲明了一變量“var1”,卻試圖在另一文件內(nèi)以變量“VAR1”訪問該變量,將發(fā)生該錯誤。   
            (2) 如果使用的內(nèi)聯(lián)函數(shù)是在.CPP文件內(nèi)定義的,而不是在頭文件內(nèi)定義將導(dǎo)致LNK2001錯誤。   
            (3) 調(diào)用函數(shù)時如果所用的參數(shù)類型同函數(shù)聲明時的類型不符將會產(chǎn)生LNK2001   
            (4) 試圖從基類的構(gòu)造函數(shù)或析構(gòu)函數(shù)中調(diào)用虛擬函數(shù)時將會導(dǎo)致LNK2001   
            (5) 要注意函數(shù)和變量的可公用性,只有全局變量、函數(shù)是可公用的。 靜態(tài)函數(shù)和靜態(tài)變量具有相同的使用范圍限制。當(dāng)試圖從文件外部訪問任何沒有在該文件內(nèi)聲明的靜態(tài)變量時將導(dǎo)致編譯錯誤或LNK2001   
            函數(shù)內(nèi)聲明的變量(局部變量)   只能在該函數(shù)的范圍內(nèi)使用。 
            C++的全局常量只有靜態(tài)連接性能。這不同于C,如果試圖在C++的多個文件內(nèi)使用全局變量也會產(chǎn)生LNK2001錯誤。一種解決的方法是需要時在頭文件中加入該常量的初始化代碼,并在.CPP文件中包含該頭文件;另一種方法是使用時給該變量賦以常數(shù)。 
              
            2. 由于編譯和鏈接的設(shè)置而造成的LNK2001 
            (1) 如果編譯時使用的是/NOD(/NODEFAULTLIB)選項,程序所需要的運行庫和MFC庫在連接時由編譯器寫入目標(biāo)文件模塊,   但除非在文件中明確包含這些庫名,否則這些庫不會被鏈接進(jìn)工程文件。在這種情況下使用/NOD將導(dǎo)致錯誤LNK2001   
            (2) 如果沒有為wWinMainCRTStartup設(shè)定程序入口,在使用UnicodeMFC時將得到“unresolved   external   on   _WinMain@16”LNK2001錯誤信息。   
            (3)使用/MD選項編譯時,既然所有的運行庫都被保留在動態(tài)鏈接庫之內(nèi),源文件中對“func”的引用,在目標(biāo)文件里即對“__imp__func”   的引用。如果試圖使用靜態(tài)庫LIBC.LIBLIBCMT.LIB進(jìn)行連接,將在__imp__func上發(fā)生LNK2001;如果不使用/MD選項編譯,在使用MSVCxx.LIB連接時也會發(fā)生LNK2001   
            (4)使用/ML選項編譯時,如用LIBCMT.LIB鏈接會在_errno上發(fā)生LNK2001   
            (5)當(dāng)編譯調(diào)試版的應(yīng)用程序時,如果采用發(fā)行版模態(tài)庫進(jìn)行連接也會產(chǎn)生LNK2001;同樣,使用調(diào)試版模態(tài)庫連接發(fā)行版應(yīng)用程序時也會產(chǎn)生相同的問題。   
            (6) 不同版本的庫和編譯器的混合使用也能產(chǎn)生問題,因為新版的庫里可能包含早先的版本沒有的符號和說明。   
            (7) 在不同的模塊使用內(nèi)聯(lián)和非內(nèi)聯(lián)的編譯選項能夠?qū)е?/span>LNK2001。如果創(chuàng)建C++庫時打開了函數(shù)內(nèi)聯(lián)(/Ob1/Ob2),但是在描述該函數(shù)的相應(yīng)頭文件里卻關(guān)閉了函數(shù)內(nèi)聯(lián)(沒有inline關(guān)鍵字),這時將得到該錯誤信息。為避免該問題的發(fā)生,應(yīng)該在相應(yīng)的頭文件中用inline關(guān)鍵字標(biāo)志內(nèi)聯(lián)函數(shù)。   

            (8) 不正確的/SUBSYSTEM/ENTRY設(shè)置也能導(dǎo)致LNK2001

            其實,產(chǎn)生LNK2001的原因還有很多,以上的原因只是一部分而已。

            上面錯誤的原因是在程序中違反了標(biāo)準(zhǔn)C++的規(guī)定而引起的。下面還要說明一中由于編譯器而引起的錯誤:

            在標(biāo)準(zhǔn)C++中模板類的定義和實現(xiàn)是不能分開的,原因是類模板和函數(shù)模板都不是真正的定義,真正的定義是在模板實例化時由編譯器生成的。如果將模板的定義和實現(xiàn)分離的話,編譯器在生成定義時就會因為找不到實現(xiàn)而報錯。

            在標(biāo)準(zhǔn)C++中模板類的定義和實現(xiàn)是可以像普通類一樣分開來存放(類定義放在.h中,類實現(xiàn)放在.cpp)。然而這個實現(xiàn)起來太困難,所以大多數(shù)編譯器都不支持(比如VC)。這樣,如果在VC中編譯代碼,代碼中將模板的定義和實現(xiàn)分開了,就會產(chǎn)生LNK2001的錯誤。

            posted @ 2012-10-22 15:19 Mumoo 閱讀(970) | 評論 (0)編輯 收藏
             
            SilentInstall silent —— 設(shè)置靜默安裝 此狀態(tài)下可使用 MessageBox 的 /SD 參數(shù)來指定靜默安裝時默認(rèn)的返回值

            HKLM——Local Machine
            HKCU——Current User
            posted @ 2012-09-27 17:48 Mumoo 閱讀(471) | 評論 (0)編輯 收藏
             
            ListCtrl的InsertItem方法默認(rèn)首列不相同,若首列值相同,則每次均插入第0行。
            修改算法如下:
            int nSize = 100;

            int nCount = 0;
             for (int i = 0; i < nSize; i++)
             {
               CString sValue;
              sValue.Format("%d", nCount);

              int nInsLine = InsertItem(nCount, sValue);
              nCount++;

              int nColumn = 0;
              for (int j = 0; j < vRecord.size(); j++)
              {
                 sValue = recordItem.sValue;
                 SetItemText(nInsLine, nColumn, sValue);
               nColumn++; 
              }
             }

            posted @ 2012-09-04 14:48 Mumoo 閱讀(317) | 評論 (0)編輯 收藏
             
            //Source:AllCode_Release?/PCPrintManage?/USBRegedit;
               //Dest:   PCPrintManage
               int nURLFindFirstSecond = sURL.ReverseFind('?');
               ASSERT(nURLFindFirstSecond != -1);
               CString sMidDir = sURL.Mid(nURLFindFirst+2, nURLFindFirstSecond-(nURLFindFirst+2));
               sSubCodeOutPath = m_sCodeOutPath + "\\" + sMidDir;
               sSubCodeOutPath.Replace("?", "");
            posted @ 2012-08-23 17:27 Mumoo 閱讀(717) | 評論 (0)編輯 收藏
             
            1)創(chuàng)建CStatic Control變量 m_sStatic;
            2)OnInit函數(shù)中 調(diào)用:m_sStatic.SetWindowText(sName);
            posted @ 2012-07-20 10:17 Mumoo 閱讀(869) | 評論 (0)編輯 收藏
             
            對話框類中添加消息函數(shù)(Messages) WM_OnContextMenu
             afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/); //函數(shù)聲明

             void CBarView::OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/) //函數(shù)體
             {
              // TODO: Add your message handler code here
              CMenu menu;
              menu.LoadMenu(IDR_RIGHTMENU);
              CMenu* pop=menu.GetSubMenu(0);
              POINT ptMouse;
              GetCursorPos(&ptMouse);
              pop->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,ptMouse.x,ptMouse.y, this);

             }



            posted @ 2012-07-10 15:35 Mumoo 閱讀(1194) | 評論 (0)編輯 收藏
             

            1.
              所有變量定義位于函數(shù)開始處。

            2.
             盡量避免全局變量,全局變量需于實現(xiàn)文件中定義,頭文件中extern聲明。

            3.
            浮點零值比較采用區(qū)間值。

            4.
            保證正確的前提下盡量使用移位運算。

            5.
            If語句、switch語句優(yōu)先處理出現(xiàn)概率大的情況。

            6.
             指針與NULL比較反寫如:NULL==p。

            7.
             循環(huán)嵌套時最長的循環(huán)放內(nèi)層短的放外層。

            8.
            盡量不在循環(huán)體內(nèi)修改循環(huán)變量。

            9.
            凡是無返回值、無參數(shù)、任意類型指針參數(shù)的函數(shù)均使用void或void指針。

            10.
            適當(dāng)使用const,使用目的限于節(jié)省空間、提高效率、不允許修改或可能產(chǎn)生的函數(shù)參數(shù)修改。

            11.
            對于可變、多變的寄存器變量、多線程共享變量,在經(jīng)過代碼優(yōu)化處理的releas版本下需使用volatile類型修飾符修飾變量。

            12.
            多參數(shù)函數(shù)應(yīng)使用結(jié)構(gòu)體減少參數(shù)個數(shù)。

            13.
            負(fù)數(shù)右移操作時會帶上符號位,高位補(bǔ)零或補(bǔ)一取決編譯器。左移或右移時移動位數(shù)不能大于數(shù)據(jù)的存儲位數(shù)。

            14.
             Release版下assert()語句無效,故非調(diào)試狀態(tài)下還是可能出現(xiàn)數(shù)據(jù)溢出而不報錯。

            15.
            使用宏定義#define定義文件路徑時候使用帶雙引號、雙反斜杠的字符串。宏定義函數(shù)時候盡可能的使用括號。宏定義中的換行接續(xù)后和行起始處保證無任何字符。

            16.
            一種變量名稱代表一段有限空間,其內(nèi)容稱為值,c/c++中稱之為從左值到右值的轉(zhuǎn)換。另一種變量是一段有限空間的引用,同時規(guī)定空間的長度(數(shù)組)。

            17.
            創(chuàng)建動態(tài)二維數(shù)組(指向指針的指針)一維使用new char*[一維度] 或者 (char**)malloc(一維度).二維循環(huán)于一維下動態(tài)創(chuàng)建new char[二維度] 或者(char*)malloc(二維度)。釋放動態(tài)二維數(shù)組剛好相反,先循環(huán)釋放二維,再釋放一維。

            18.
            使用vector作為全局變量時候存在問題。release版下push_back()會出現(xiàn)錯誤,估計是vector本身具有動態(tài)擴(kuò)展性而做為全局變量其空間大小是固定的。如果允許其變量使用push_back添加數(shù)據(jù)則可能導(dǎo)致堆數(shù)據(jù)破壞。解決辦法是將變量定義于類中并完成push_back再賦值于全局變量。

            19.
            利用字符創(chuàng)的結(jié)束標(biāo)識'/0' (其ascII 碼是 0,0x00)而非空格(其ascII 碼是 32,0x20)可判斷字符串結(jié)束以否,并可以移動指針的方式計算字符串的大小。

            20.
            Dll庫,不但可以導(dǎo)出函數(shù)接口,也可以導(dǎo)出類。如:calss _declspec(dllexport) CALSSNAME{}; class _declspec(dllimport) CLASSNAME{};#pragma comment(lib,"path")。

            21.
            合理使用整數(shù)的/ 和 % 可取得整數(shù)(浮點數(shù)整數(shù)部分)的各個位數(shù)(%10 /10),合理使用h,p,q,t做循環(huán)下的指針移動可以構(gòu)建鏈表和逆序鏈表。合理利用數(shù)組下標(biāo)可實現(xiàn)折半循環(huán)逆序數(shù)組(字符串)

            22.
            int a= 4; (++a) += (a++)  a= ?

            23.
            字符數(shù)組的大小不要忘了最后的'/0'(字符指針不能使用sizeof(point)計算)。

            24.
            free后的內(nèi)存空間只是被標(biāo)記為了可重新分配,但作為該進(jìn)程的內(nèi)存塊他依然具有讀寫權(quán)限,為了避免內(nèi)存混亂需要NULL指針避免野指針的存在。

            25.
            不存在下載文件夾的說法,只有下載文件數(shù)據(jù)和文件目錄信息,文件夾于本地創(chuàng)建。

            26.
            使用哈希查找加速檢索,哈希過程就是建立直接索引的過程,經(jīng)過哈希處理的數(shù)據(jù)在查找時候可以通過函數(shù)計算后直接定位(哈希表的索引值相當(dāng)于數(shù)組索引直接定位)到該數(shù)據(jù)。哈希不能做到百分百的唯一,所以需要處理哈希沖突,通常使用鏈表加關(guān)鍵值匹配。

            27.
            減少程序與外存的交互次數(shù)可提速程序執(zhí)行,考慮使用鏈表一次加載多次使用、內(nèi)存塊分配或者文件映射等方法。

            28.
            對大數(shù)據(jù)大文件的處理,考慮使用多線程均分工作任務(wù)的辦法從而可降低對處理器的占用率。

            posted @ 2012-06-21 16:45 Mumoo 閱讀(418) | 評論 (0)編輯 收藏
             

            string 轉(zhuǎn) CString
            CString.format("%s", string.c_str());

            char 轉(zhuǎn) CString
            CString.format("%s", char*);

            char 轉(zhuǎn) string
            string s(char *);

            string 轉(zhuǎn) char *
            char *p = string.c_str();

            CString 轉(zhuǎn) string
            string CStringTostring(CString str)
            {
            string s;

            s.append(str.GetBuffer(str.GetLength()));

            str.ReleaseBuffer();

            return s;

            }

            1,string -> CString
            CString.format("%s", string.c_str());
            用c_str()確實比data()要好.
            2,char -> string
            string s(char *);
            你的只能初始化,在不是初始化的地方最好還是用assign().


            C++標(biāo)準(zhǔn)函數(shù)庫》中說的
            有三個函數(shù)可以將字符串的內(nèi)容轉(zhuǎn)換為字符數(shù)組和C—string
            1.data(),返回沒有”{post.content}“的字符串?dāng)?shù)組
            2,c_str(),返回有”{post.content}“的字符串?dāng)?shù)組
            3,copy()

            ---------------------------------------------------------------

            CString與int、char*、char[100]之間的轉(zhuǎn)換- -


            CString與int、char*、char[100]之間的轉(zhuǎn)換- -



            CString互轉(zhuǎn)int

            將字符轉(zhuǎn)換為整數(shù),可以使用atoi、_atoi64或atol。
            而將數(shù)字轉(zhuǎn)換為CString變量,可以使用CString的Format函數(shù)。如
            CString s;
            int i = 64;
            s.Format("%d", i)
            Format函數(shù)的功能很強(qiáng),值得你研究一下。

            void CStrDlg::OnButton1()
            {
            // TODO: Add your control notification handler code here
            CString
            ss="1212.12";
            int temp=atoi(ss);
            CString aa;
            aa.Format("%d",temp);
            AfxMessageBox("var is " + aa);
            }

            sart.Format("%s",buf);

            CString互轉(zhuǎn)char*

            ///char * TO cstring
            CString strtest;
            char * charpoint;
            charpoint="give string a value";
            strtest=charpoint;


            ///cstring TO char *
            charpoint=strtest.GetBuffer(strtest.GetLength());

            標(biāo)準(zhǔn)C里沒有string,char *==char []==string

            可以用CString.Format("%s",char *)這個方法來將char *轉(zhuǎn)成CString。要把CString轉(zhuǎn)成char *,用操作符(LPCSTR)CString就可以了。


            CString轉(zhuǎn)換 char[100]

            char a[100];
            CString str("aaaaaa");
            strncpy(a,(LPCTSTR)str,sizeof(a));

            posted @ 2012-06-21 15:25 Mumoo 閱讀(332) | 評論 (0)編輯 收藏
             

            BOOL  MergeXMLToDesXML(const CString &sDesXMLPath, const CString &sSrcXMLPath)
            {
             TiXmlDocument XmlDocSrc(sSrcXMLPath);
             if (!XmlDocSrc.LoadFile())
             {
              LOG("GetJobXMLInfo:加載XML文件%s失敗", sSrcXMLPath);
              return FALSE;
             }

             TiXmlDocument XmlDocDes(sDesXMLPath);
             if (!XmlDocDes.LoadFile())
             {
              LOG("GetJobXMLInfo:加載XML文件%s失敗", sDesXMLPath);
              return FALSE;
             }

             TiXmlElement *pFirstChildSrc = XmlDocSrc.FirstChildElement("Root");

             TiXmlElement *pFirstChildDes = XmlDocDes.FirstChildElement("Root");
             if (TiXmlElement* pRecordAtributeDes = pFirstChildDes->FirstChildElement("FirstChild"))
             {
              while(pRecordAtributeDes)
              {
               pFirstChildSrc->InsertEndChild(*pRecordAtributeDes); 
               pRecordAtributeDes = pRecordAtributeDes->NextSiblingElement();
              }
             }

             XmlDocSrc.SaveFile(sDesXMLPath);
             return TRUE;
            }

            posted @ 2012-06-18 17:53 Mumoo 閱讀(1135) | 評論 (0)編輯 收藏
            僅列出標(biāo)題
            共4頁: 1 2 3 4 
             
            99久久精品费精品国产一区二区| 欧美熟妇另类久久久久久不卡| 999久久久免费国产精品播放| 99久久人人爽亚洲精品美女| 久久久久久极精品久久久| 国产精品免费久久久久久久久| 2021国内久久精品| 国产精品久久久久天天影视| 久久精品国产第一区二区| 久久人人添人人爽添人人片牛牛| 国产精品久久毛片完整版| 久久综合五月丁香久久激情| 国产精品免费看久久久 | 2021国内久久精品| 狠狠狠色丁香婷婷综合久久五月 | 久久久久久精品无码人妻| 精品国产乱码久久久久久1区2区 | 伊人伊成久久人综合网777| 精品国产福利久久久| 国产精品成人久久久| 国产精品免费看久久久香蕉| 少妇人妻88久久中文字幕| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久强奷乱码老熟女| 久久免费视频网站| 久久久久久久97| 中文无码久久精品| 综合久久给合久久狠狠狠97色| 91亚洲国产成人久久精品| 成人免费网站久久久| 99热成人精品热久久669| 午夜不卡久久精品无码免费| 久久精品国产亚洲AV不卡| 午夜精品久久久久9999高清| 久久亚洲视频| 国产精品中文久久久久久久| 日本欧美国产精品第一页久久| 久久无码AV中文出轨人妻| 久久av高潮av无码av喷吹| 久久国产热这里只有精品| 久久久99精品一区二区|