Time of Update: 2018-12-03
## 串連符與# 符 ## 串連符號由兩個井號組成,其功能是在帶參數的宏定義中將兩個子串(token)聯結起來,從而形成一個新的子串。但它不可以是第一個或者最後一個子串。所謂的子串(token)就是指編譯器能夠識別的最小文法單元。具體的定義在編譯原理裡有詳盡的解釋,但不知道也無所謂。同時值得注意的是#符是把傳遞過來的參數當成字串進行替代。下面來看看它們是怎樣工作的。這是MSDN上的一個例子。 假設程式中已經定義了這樣一個帶參數的宏:#define paster( n ) printf(
Time of Update: 2018-12-03
訊息迴圈中的TranslateMessage函數開發人員線上 Builder.com.cn 更新時間:2007-09-28作者:ghost 來源:CSDN本文關鍵詞: 訊息迴圈 ghost 函數 函數功能描述:將虛擬鍵訊息轉換為字元訊息。字元訊息被送到調用線程的訊息佇列中,在下一次線程調用函數GetMessage或PeekMessage時被讀出。.函數原型: BOOL TranslateMessage( CONST MSG *lpMsg );.參數: lpMsg
Time of Update: 2018-12-03
int CUtil::GetSystemPorts(CString *pNameList, CString *pPortList) { CRegKey RegKey; int nCount = 0; if(RegKey.Open(HKEY_LOCAL_MACHINE, "Hardware//DeviceMap//SerialComm") == ERROR_SUCCESS) { while(true)
Time of Update: 2018-12-03
CreateThread、_beginthread和_beginthreadex都是用來啟動線程的。區別:_beginthread是_beginthreadex的功能子集,_beginthreadex是微軟的C/C++執行階段程式庫函數,CreateThread是作業系統的函數。雖然_beginthread內部是調用_beginthreadex但他屏蔽了象安全特性這樣的功能,所以_beginthread與CreateThread不是同等層級,_beginthreadex和CreateThread
Time of Update: 2018-12-03
使用MSXML解析XML檔案本文以如下的XML檔案為例,讀寫這個XML檔案ASKLog.xml <?xml version="1.0" encoding="utf-8"?><Log> <LogNode> <RecordTime>2007-11-28 15:23:14</RecordTime> <RecordState>Running</RecordState> <RecordMessage>Fi
Time of Update: 2018-12-03
如果在某些儲存格中需要輸入固定格式的資料(如“職稱”等),我們可以通過“資料有效性”建立一下下拉式清單,來進行選擇輸入,以方便統一輸入的資料。
Time of Update: 2018-12-03
strtol()函數的原型:long int strtol ( const char * str, char ** endptr, int base );strtol()函數的reference:http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/然後一篇很詳細的介紹strtol()函數的blog...long int strtol(const char *nptr, char **endptr, int base)strtol(
Time of Update: 2018-12-03
1.使用互斥量來限制程式只運行一次BOOL CExecInApp::InitInstance(){//denyrunning application second /*AfxEnableControlContainer();::CreateMutex(NULL, TRUE, m_pszExeName); if(ERROR_ALREADY_EXISTS == GetLastError()) {
Time of Update: 2018-12-03
訊息映射、迴圈機制是Windows程式啟動並執行基本方式。VC++ MFC 中有許多現成的訊息控制代碼,可當我們需要完成其它的任務,需要自訂訊息,就遇到了一些困難。在MFC ClassWizard中不允許添加使用者自訂訊息,所以我們必須手動在程式中添加相應代碼,以便可以象處理其它訊息一樣處理自訂訊息。自訂訊息的步驟如下:(1)建立Single Document的MFC
Time of Update: 2018-12-03
使用位域的主要目的是壓縮儲存,其大致規則為:1) 如果相鄰位域欄位的類型相同,且其位寬之和小於類型的sizeof大小,則後面的欄位將緊鄰前一個欄位儲存,直到不能容納為止;2) 如果相鄰位域欄位的類型相同,但其位寬之和大於類型的sizeof大小,則後面的欄位將從新的儲存單元開始,其位移量為其類型大小的整數倍;3) 如果相鄰的位域欄位的類型不同,則各編譯器的具體實現有差異,VC6採取不壓縮方式,Dev-C++採取壓縮方式;4) 如果位域欄位之間穿插著非位域欄位,則不進行壓縮;5) 整個結構體的總大小
Time of Update: 2018-12-03
public class ClassNetGetMac { public ClassNetGetMac() { } [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest,Int32 host,byte[] mac,ref Int32 length); [DllImport("Ws2_32.dll")] private static extern Int32
Time of Update: 2018-12-03
1)static全域變數與普通的全域變數有什麼區別?(2)static局部變數和普通局部變數有什麼區別?(3)static函數與普通函數範圍有什麼不同點?(4)static函數與普通函數有什麼區別?(1)static全域變數與普通的全域變數有什麼區別?答:全域變數(外部變數)的說明之前再加以static
Time of Update: 2018-12-03
getrlimit和setrlimit函數 每個進程都有一組資源限制,其中某一些可以用getrlimit和setrlimit函數查詢和更改。#include #include int getrlimit(int resource,struct rlimit *rlptr);int setrlimit(int resource,const struct rlimit rlptr);Both return: 0 if OK,nonzero on error兩個函數 返回:若成功為0,出錯為非0
Time of Update: 2018-12-03
//第一個解決方案//erase.h#include <algorithm>using std::find_if; template<class _map>class Proxy{ typename _map::mapped_type const _value;public: Proxy(typename _map::mapped_type const &value):_value(value){} bool
Time of Update: 2018-12-03
關鍵字:sizeof,位元組對齊,多繼承,虛擬繼承,成員函數指標前向聲明:sizeof,一個其貌不揚的傢伙,引無數菜鳥竟折腰,小蝦我當初也沒少犯迷糊,秉著“辛苦我一個,幸福千萬人”的偉大思想,我決定將其儘可能詳細的總結一下。但當我總結的時候才發現,這個問題既可以簡單,又可以複雜,所以本文有的地方並不適合初學者,甚至都沒有必要大作文章。但如果你想“知其然,更知其所以然”的話,那麼這篇文章對你或許有所協助。菜鳥我對C++的掌握尚未深入,其中不乏錯誤,歡迎各位指正啊1.
Time of Update: 2018-12-03
Windows系統子目錄中的動態連結程式庫Odbcinst.dll提供了一個可以動態地增加、修改和刪除資料來源的函數SQLConfigDataSource()。該函數的原型如下:BOOL SQLConfigDataSource(HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR
Time of Update: 2018-12-03
這個資料結構是這樣的: struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; #define h_addr h_addr_list[0] 這裡是這個資料結構的詳細資料: struct hostent: h_name – 地址的正式名稱。 h_aliases –
Time of Update: 2018-12-03
建構函式中的this指標作者:溫昱說明:感謝網頁C++ FAQ Lite的作者Marshall Cline和譯者申旻;感謝《C++語言核心》一書的作者Gregory Satir和Doug
Time of Update: 2018-12-03
CreateThread 是一個Win 32API 函數,_beginthread 是一個CRT(C Run-Time)函數,他們都是實現多線城的建立的函數,而且他們擁有相同的使用方法,相同的參數列表。但是他們有什麼區別呢?一般來說,從使用角度是沒有多大的區別的,CRT函數中除了signal()函數不能在CreateThread建立的線城中使用外,其他的CRT函數都可一正常使用,但是如果在CreateThread建立的線城中使用CRT函數的話,會產生一些Memory
Time of Update: 2018-12-03
七種排序演算法堆排序#include<stdio.h>void CreatHeap(int a[],int n,int h){ int i,j,flag,temp; i=h; j=2*i+1; temp=a[i]; flag=0; while(j<n && flag!=1) { if(j<n-1 && a[j]<a[j+1]) j++; if(temp>a[j]) flag=1; el