Time of Update: 2018-12-05
如果想要在程式中使用控制符,在檔案的開頭除了要加iostream標頭檔外還要加iomanip標頭檔。控制符 作用dec 設定數值的基數為10hex 設定數值的基數為16oct
Time of Update: 2018-12-05
題外話今天聽了《編程範式》的Lecture 5,繼續上一篇的主題,用C語言實現簡單的泛型程式設計,收個尾。正題回憶上一篇的最後一個函數:void* lsearch(void* key,void* base,int n,int elemSize,int (*cmpfn)(void*,void*)){ for(int i=0;i<n;++i){ void* elemAddr=(char *)base+i*elemSize;
Time of Update: 2018-12-05
題外話 鄙人最近在家裡聽斯坦福大學的開放課程——《編程範式Programming Paradigms》。附上veryCD的資源:http://www.verycd.com/topics/2838268/ 這個是英文授課,現在還是沒有中文或英文字幕的。就課程來說非常不錯。其中Lecture
Time of Update: 2018-12-05
轉載一份C++線程池的代碼,非常實用 收藏 #ifndef _ThreadPool_H_#define _ThreadPool_H_#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include <cassert>#include <vector>#include <queue>#include <windows.h>using namespace std;class
Time of Update: 2018-12-05
int _tmain(int argc, _TCHAR* argv[]){ Func("dd"); char szBuf[12] = "123456789"; char *p = "123456789"; ::Sleep(1000); printf("szBuf : %s/n",szBuf); ::Sleep(1000); printf("p : %s/n",p); ::Sleep(1000); printf("sizeof(p) : %d/n",sizeof(p)); ::Sleep(1000
Time of Update: 2018-12-05
對於普通類型的對象來說,它們之間的複製是很簡單的,例如:int a=100;int b=a;而類對象與普通對象不同,類對象內部結構一般較為複雜,存在各種成員變數。下面看一個類對象拷貝的簡單例子。#include <iostream>using namespace std;class CA{public:CA(int b){a=b;}void Show (){cout<<a<<endl;}private:int a;};int main(){CA A(100);
Time of Update: 2018-12-05
Void and function pointers. Hash tables.Void pointers• C does not allow us to declare and use void variables. • void can be used only as return type or parameter of afunction. • C allows void pointers • Question: What are some scenarios where you
Time of Update: 2018-12-05
C standard library: stdio.h,ctype.h, stdlib.h, assert.h, stdarg.h, time.h<stdio.h>: File operationsint remove(const char∗ filename) • removes the file from the filesystem. • retrn non-zero on error. int rename(const char∗ oldname, const char∗
Time of Update: 2018-12-05
Pointers to pointers, pointer and string arrays, multidimensional arrays. Stacks and queues.Pointer pointers• What does this function do? void swap (int ∗∗a , int ∗∗b){int ∗temp = ∗a;∗ a = ∗b;∗b = temp;} • How does it compare to the familiar version
Time of Update: 2018-12-05
External libraries. B-trees,priority queues.Symbols and libraries• External libraries provide a wealth of functionality – example: C standard library• Programs access libraries’ functions and variables via identifiers known as symbols• Header file
Time of Update: 2018-12-05
玩轉C指標 前段時間聽了CSDN線上講堂的嵌入式C學習關於指標的課,下面是我的學習筆記,記下了我認為比較重要的知識點,筆記並不全面,就算是學習的tips。1.看下面的代碼: #define INT_T int*typedef int* int_t;void main(){ INT_T p1,p2; int_t
Time of Update: 2018-12-05
使用C/C++語言開發軟體的程式員經常碰到這樣的問題:有時候是程式編譯沒有問題,但是連結的時候總是報告函數不存在(經典的LNK 2001錯誤),有時候是程式編譯和連結都沒有錯誤,但是只要調用庫中的函數就會出現堆棧異常。這些現象通常是出現在C和C++的代碼混合使用的情況下或在C++程式中使用第三方的庫的情況下(不是用C++語言開發的),其實這都是函數呼叫慣例(Calling Convention)和函數名修飾(Decorated
Time of Update: 2018-12-05
C++異常和Windows結構異常的比較 Windows結構異常有如下幾個特性: 1、它使用__try、__except、__finally和__leave關鍵字和RaiseException API; 2、它由Windows所支援,因此它不適合其它作業系統 3、它不處理C++對象的解析 說明:在使用Windows結構異常的函數內,如果有C++對象,編譯器會發 出:error C2712: Cannot use __try in functions that require object
Time of Update: 2018-12-05
問題1:當一段代碼被try塊包圍後與不加try時在沒有異常發生的情況下,執行過程是否有區別? 問題2: 如果有區別,那麼這樣的區別對效能的影響有多大呢? 問題3: try的代碼究竟做了些什麼?他對代碼做的是每次執行時監視還是以類似中斷的的方式,當出現異常時主動調用什麼過程轉向異常處理.?問題1的回答: ①: try{}部分和不加try/catch語句塊的效率幾乎一樣, catch{}部分似乎需要100倍以上的時間
Time of Update: 2018-12-05
5. 記錄集的遍曆、更新 根據我們剛才通過執行SQL命令建立好的users表,它包含四個欄位:ID,username,old,birthday以下的代碼實現:開啟記錄集,遍曆所有記錄,刪除第一條記錄,添加三條記錄,移動游標到第二條記錄,更改其年齡,儲存到資料庫。 _variant_t vUsername,vBirthday,vID,vOld;_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance("ADODB.Recordset")
Time of Update: 2018-12-05
摘要:在各種業務解決方案的設計中,伺服器處理任務的效率是衡量方案優劣的一個重要標準。使用多線程技術並發處理任務是提高伺服器效率的一個主要手段。但是頻繁的線程建立、銷毀和任務的分配也會降低系統效率。本文設計了一個通用的線程池,根據不同伺服器所處理的任務的特點,可以設定對應的線程池參數,最大幅度的提高系統效能。 關鍵字:線程池多線程任務虛函數異常 概述 在各種業務解決方案的設計過程中,伺服器處理任務的效率往往決定了方案的成敗。多執行緒任務是提高伺服器效率的主要手段,它提高了對伺服器資源的利用,
Time of Update: 2018-12-05
在利用VC進行資料庫編程時,經常需要處理資料庫中的映像資料,將該映像從資料庫中讀取出來並顯示,映像資料與文字欄位不同,它是作為OLE欄位在資料庫中儲存,通過資料集對象的成員變數自動交換得到的映像資料,得到的資料並不能直接顯示,如何處理映像資料,一直是資料庫編程中的一個痛點,目前關於VC進行資料庫編程的資料不少,但很少涉及映像資料的操作,筆者針對一現狀,結合自己開發的一個項目,解決了如何顯示資料庫中的映像這一問題,本文以操作ACESS資料庫為例子,講解一下自己的實現思路,希望對愛好VC編程的朋友們
Time of Update: 2018-12-05
1. 產生應用程式架構並初始化OLE/COM庫環境 建立一個標準的MFC AppWizard(exe)應用程式,然後在使用ADO資料庫的InitInstance函數中初始化OLE/COM庫(因為ADO庫是一個COM DLL庫)。本例為: BOOL CAdotestDlg::OnInitDialog() { ::CoInitialize(NULL); //初始化OLE/COM庫環境 } 程式最後要調用 ::CoUninitialize();//釋放程式佔用的COM 資源
Time of Update: 2018-12-05
Windows 服務被設計用於需要在後台啟動並執行應用程式以及實現沒有使用者互動的任務。為了學習這種控制台應用程式的基礎知識,C(不是C++)是最佳選擇。本文將建立並實現一個簡單的服務程式,其功能是查詢系統中可用實體記憶體數量,然後將結果寫入一個文字檔。最後,你可以用所學知識編寫自己的 Windows 服務。 當初我寫第一個NT 服務時,我到 MSDN 上找例子。在那裡我找到了一篇 Nigel Thompson 寫的文章:“Creating a Simple Win32 Service in
Time of Update: 2018-12-05
4.執行SQL命令並取得結果記錄集 為了取得結果記錄集,我們定義一個指向Recordset對象的指標:_RecordsetPtr m_pRecordset;並為其建立Recordset對象的執行個體: m_pRecordset.CreateInstance("ADODB.Recordset");SQL命令的執行可以採用多種形式,下面我們一進行闡述。 (1)利用Connection對象的Execute方法執行SQL命令 Execute方法的原型如下所示: _