Abstractstd::string為library type,而int、double為built-in type,兩者無法利用(int)或(double)的方式互轉,本文提出轉換的方式。Introduction使用環境:Visual C++ 9.0 / Visual Studio 2008Method 1:使用C的atoi()與atof()。先利用c_str()轉成C string,再用atoi()與atof()。string_to_double.cpp / C++Code
全域變數、局部變數、靜態全域變數、靜態局部變數的區別C++變數根據定義的位置的不同的生命週期,具有不同的範圍,範圍可分為6種:全域範圍,局部範圍,語句範圍,類範圍,命名空間範圍和檔案範圍。從範圍看:全域變數具有全域範圍。全域變數只需在一個源檔案中定義,就可以作用於所有的源檔案。當然,其他不包含全域變數定義的源檔案需要用extern
1.使用方法詳解 在本文開始之處,先簡要地說一下何為短字元和寬字元. 所謂的短字元,就是用8bit來表示的字元,典型的應用是ASCII碼.而寬字元,顧名思義,就是用16bit表示的字元,典型的有UNICODE.關於windows下的ASCII和UNICODE的更多資訊,可以參考這兩本經典著作:《windows 程式設計》,《windows 核心編程》.這兩本書關於這兩種字元都有比較詳細的解說. 寬字元轉換為多個短字元是一個痛點,不過我們只要掌握到其中的要領,便可如魚得水.
Socket中如何設定連線逾時(antghazi發表於2003-3-16
顯示圖形如何避免閃爍,如何提高顯示效率是問得比較多的問題。 而且多數人認為MFC的繪圖函數效率很低,總是想尋求其它的解決方案。 MFC的繪圖效率的確不高但也不差,而且它的繪圖函數使用非常簡單, 只要使用方法得當,再加上一些技巧,用MFC可以得到效率很高的繪圖程式。 我想就我長期(呵呵當然也只有2年多)使用MFC繪圖的經驗談談 我的一些觀點。 1、顯示的圖形為什麼會閃爍? 我們的繪圖過程大多放在OnDraw或者OnPaint函數中,OnDraw在進行屏
一、下面這個程式執行後會有什麼錯誤或者效果:#define MAX 255int main(){unsigned char A[MAX],i;//i被定義為unsigned charfor (i=0;i<=MAX;i++)A[i]=i;}解答:死迴圈加數組越界訪問(C/C++不進行數組越界檢查)MAX=255數組A的下標範圍為:0..MAX-1,這是其一..其二.當i迴圈到255時,迴圈內執行:A[255]=255;這句本身沒有問題..但是返回for (i=0;i<=MAX;i++)
1、 對任意輸入的正整數N,編寫C程式求N!的尾部連續0的個數,並指出計算複雜度。如:18!=6402373705728000,尾部連續0的個數是3。(不用考慮數值超出電腦整數界限的問題)思路:就是求N中5的個數解答:int num;//結尾0的個數num=0;while(N){num+=N/5;N/=5;} 2、請實現兩棵樹是否相等的比較,相等返回1,否則返回其他值,並說明演算法複雜度。資料結構為:typedef struct_TreeNode{ char c;
關於MFC下的文檔和視圖以及架構之間的訪問, 這些問題已經是老生常談了,但我覺得還是都沒有詳細的說明,特別是對於英語較差的人,我查看了一些blog,總結了一下!希望對和我一樣的人有點協助! 一: 1: 因為對於SDI程式,主架構視窗就是文檔框窗(如果這個也不知道,就要查看一下MFC下的單文檔的構成原理了). 下面所說的是關於單文檔的. 例子: 在CMainFrame架構中如何得到視圖類的指標.
CString strData = _T("ni hao");int len = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, 0, NULL, NULL); char* szTarget = new char[len + 1]; memset(szTarget, 0, len + 1); WideCharToMultiByte (CP_ACP,
好多朋友都喜歡使用Tortoise SVN,Tortoise SVN有著很多的有點事很多同類軟體無法比美的,現在我們來看看Tortoise SVN用戶端的基本使用方法1. export 和check out export 下載原始碼 用法: 1、建立一個空的檔案夾,右鍵點擊它,可以看到TortoiseSVN菜單以及上面的SVN Checkout。 2、不用管這個Checkout,我們選擇TortoiseSVN菜單下的Export...,接著它會讓你輸入url。 3、比如輸入【
目前較為常用的串口有9針串口(DB9)和25針串口(DB25),通訊距離較近時(<12m),可以用電纜線直接連接標準RS232連接埠
在解決pda軟體字型的問題。現在已經發現根本原因:qte內建的預設字型本身不好(標準特級殘廢)。通過尋找資料找到了幾種種解決途徑: 1 使用其它unicode版本的ttf字型(windows下有很多ttf字型,但不知是不是unicode編碼),但這個需要安裝freetype外掛程式。我編譯好了一個新版本,但還沒有安裝成功。後來編譯了一個freetype庫,可以使用windows下的ttf字型了。 2 使用bdf字型,可是發現網上沒人這樣做,有人告訴的方法不對。 3
QT串連資料庫 是應用開發的常用基礎操作。經過實驗,我總結了一些常式。這些常式可以串連各種資料庫。ps:這裡只是我覺得好用的方法。QT另外提供了更進階的方法,如有需要請自己嘗試。串連資料庫需要的標頭檔:#include <QSqlDatabase>#include <QSqlQuery>1、串連微軟的Access---------------------------------------------------------------------------------
微軟在Windows
1:結構體中定義字元數組並賦值先看一段錯誤的代碼struct stype { char c1[16] }; struct stype s1; s1.c1 = "Hello"; //錯誤 這是很幼稚的概念錯誤,char c2[10]聲明一個10元素的數組c2,此時c2的空間已經被分配,c2是這個數組的地址,是一個常量,如果再進行 c2 = “hello" 這樣其實就試圖改變c2,這是錯誤的。strcpy(s1.c1, "Hello"); //這樣就正確 下面還有更好的辦法:struct
如果想讀寫可靠,要根據 不同的速率和應用實際情況設定合適的值。和同步模式和非同步模式、不同的通訊協定無關。 COMMTIMEOUTS:COMMTIMEOUTS主要用於串口逾時參數設定。COMMTIMEOUTS結構如下: typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; DWORD ReadTotalTimeoutMultiplier; DWORD
步驟如下: 1. 啟動Platform Builder 5.0,開啟 File 菜單, 選擇 New Platform(新平台), 這時會出現New Platform Wizard(建立嚮導),選擇 Next。 2. 選擇模擬處理器,預設為EMULATOR: X86 ,即x86相容型,利用你的x86處理器模擬 CE處理器,選好後,點擊 Next。 3.
當你想用線程函數調用類的成員函數時,需要將線程函式宣告為類的static成員。由於線程函數是一個由系統調用的函數,所以是一個callback函數,所以他不能有this 指標,所以你的線程函數要麼是全域函數,要麼是類的靜態成員。將線程函數申明為靜態,如: class CRealtimeTask { public: static UINT taskmain(LPVOID param); BOOL StartTask(); };
這類問題的出現主要在BOOL CWinApp::ProcessShellCommand(CCommandLineInfo& rCmdInfo);函數的關鍵內容:BOOL bResult = TRUE;switch (rCmdInfo.m_nShellCommand){case CCommandLineInfo::FileNew: // 建立 if (!AfxGetApp()->OnCmdMsg(ID_FILE_NEW, 0, NULL, NULL)) OnFileNew();