Time of Update: 2018-12-04
C/C++返回內部靜態成員的陷阱陳皓背景在我們用C/C++開發的過程中,總是有一個問題會給我們帶來苦惱。這個問題就是函數內和函數外代碼需要通過一塊記憶體來互動(比如,函數返回字串),這個問題困擾和很多開發人員。如果你的記憶體是在函數內棧上分配的,那麼這個記憶體會隨著函數的返回而被彈棧釋放,所以,你一定要返回一塊函數外部還有效記憶體。這是一個讓無數人困擾的問題。如果你一不小心,你就很有可能在這個上面犯錯誤。當然目前有很多解決方案,如果你熟悉一些標準庫的話,你可以看到許多各式各樣的解決方案。大體
Time of Update: 2018-12-04
1.用反射動態建立類執行個體,並調用其公有成員函數。//建立一個類庫項目,增加一個GetSum方法。using System; namespace ClassLibrary1{ public class Class1 { public Class1() { } public int GetSum(int x, int y) {return x + y; }
Time of Update: 2018-12-04
中午吃飯,閑來無事,分別用Java和C#實現了一個計算PI值的類,執行次數相同,為了避免一些偶然誤差,姑設定了一個比較大的計算次數100000000,1億次!Java代碼如下:import java.util.*;public class CalcPI{ public static final int COUNT=100000000; public static void main(String[] args) { long start=System.currentTimeMillis();
Time of Update: 2018-12-04
Visual C++開發裝置驅動程式的注意事項 簡單的說,使用Makefile項目來建立裝置驅動程式的過程就是在Visual C++中調用DDK命令的過程,其與DDK命令提示視窗的執行順序完全一樣,驅動程式的可執行檔也被存放在同一個目錄中。他們之間的區別只是一個在DDK的命令提示視窗,一個在Visual C++的整合式開發環境中調用這些命令罷了。但其與使用Visual
Time of Update: 2018-12-04
基於Visual C++6.0的DLL編程實現一、前言 自從微軟推出16位的Windows作業系統起,此後每種版本的Windows作業系統都非常依賴於動態連結程式庫(DLL)中的函數和資料,實際上 Windows作業系統中幾乎所有的內容都由DLL以一種或另外一種形式代表著,例如顯示的字型和表徵圖儲存在GDI DLL中、顯示Windows案頭和處理使用者的輸入所需要的代碼被儲存在一個User DLL中、Windows編程所需要的大量的API函數也被包含在Kernel
Time of Update: 2018-12-04
在我上大學的時候就流傳著這樣一個超牛的C程式,只用三行代碼就能計算π到小數點後800位,還有的地方開玩笑說是外星人寫的,的確是牛的不得了。那個時候大家一起研究都搞不懂,昨天看了一篇文章解釋這段代碼,今天自己實驗了很久,終於弄明白了,所以記下來和大家一起交流。這段C代碼是這樣的:#include "stdio.h"long a=10000, b, c=2800, d, e, f[2801], g;void main() {for( ;b-c; ) f[b++] =a/5;for( ; d=0, g
Time of Update: 2018-12-04
mutalbe的中文意思是“可變的,易變的”,跟constant(既C++中的const)是反義詞。 在C++中,mutable也是為了突破const的限制而設定的。被mutable修飾的變數,將永遠處於可變的狀態,即使在一個const函數中。 我們知道,如果類的成員函數不會改變對象的狀態,那麼這個成員函數一般會聲明成const的。但是,有些時候,我們需要在const的函數裡面修改一些跟類狀態無關的資料成員,那麼這個資料成員就應該被mutalbe來修飾。
Time of Update: 2018-12-04
其實代理模式跟這個差不多,對象A(相當於瀏覽器)不是直接存取對象C(相當Web伺服器),而是通過一個中間對象B(相當於Proxy
Time of Update: 2018-12-04
學過別的進階語言的都知道,產生隨機數用的都是類似於random這樣的字元,c++也不例外,在C++中使用的是rand()函數,但是不同的是,如果在C++中只使用了例如 "int
Time of Update: 2018-12-04
建立:2005-10-26 16:54:00作者:Unlinux來自: http://www.Unlinux.com1. 擷取檔案的資訊:stat(char* filename, struct stat* buf);struct stat { dev_t st_dev; /* 裝置 */ ino_t st_ino; /* 節點 */ mode_t st_mode; /* 模式 */ nlink_t st_nlink; /* 硬串連 */ uid_t st_uid; /* 使用者ID */
Time of Update: 2018-12-04
看了qualcomm的 interface, 決定把它抄下來。 主要還是方便日後尋找。 1. define the structure of virtual function table #ifndef __INTERFACE_H__#define __INTERFACE_H__//定義一個虛函數表名稱#define VTBL(iname) iname##Vtbl //定義虛函數表結構#define QINTERFACE(iname) struct _##iname{/
Time of Update: 2018-12-04
摩托羅拉C++面試題
Time of Update: 2018-12-04
程式碼下載:http://download.csdn.net/detail/peibaoyi/5707627突發奇想,想根據類的名字(一個C++的string),建立相應的類執行個體,除了這個string,不用其他的東西。比方說我已經聲明了一個PClassStr這個類,現在我用字串"PClassStr"來建立一個PClassStr這個類的執行個體。google了一下,得到的大多數是有關typeof和typeid相關,進一步就是C++0x,還有個auto。typeid是萃取出某個C++類(或對象)
Time of Update: 2018-12-04
以前我寫過通過WMI來擷取有關係統資訊的系列文章,確實通過WMI能夠恨輕易地實現很多我們想實現的功能,不過有些情況下我們很難利用WMI來實現一些複雜的功能,比如最近我做的一個項目,其中有一個功能就是要更改系統目前時間,利用WMI就很難實現(我沒有找到相關的方法),還有一些其它方面的功能,也比較難以通過WMI來實現,也許是WMI需要較高的許可權才能執行的原因吧。所以,儘管我們不願意,但是又不得不通過調用Windows
Time of Update: 2018-12-04
示範檔案 I/O 操作本文中的樣本講述基本的檔案 I/O 操作。“分步樣本”部分說明如何建立一個示範下列六種檔案 I/O 操作的樣本程式:•讀取文字檔•寫入文字檔•查看檔案資訊•列出磁碟機•列出檔案夾•列出檔案注意:如果要直接使用下列範例程式碼,請注意下列事項:•必須包括 System.IO 命名空間,如下所示:using System.IO; •按如下方式聲明 winDir 變數:string
Time of Update: 2018-12-04
C++字串函數詳解[轉]轉載自:http://zhanglong2004.spaces.live.com/?owner=1void *memset(void *dest, int c, size_t count); 將dest前面count個字元置為字元c.返回dest的值.void *memmove(void *dest, const void *src, size_t count);從src複製count位元組的字元到dest. 如果src和dest出現重疊,
Time of Update: 2018-12-04
/// <summary> /// 執行多條SQL語句,實現資料庫事務 /// </summary> /// <param name="SQLStringList">SQL語句</param> /// <returns>影響行數</returns> public static int
Time of Update: 2018-12-04
神乎其技,惟C程式,功到自成,十大建議! 1、汝應頻繁催動lint工具,據其文法聲明修習內力,此事皆因lint之思慮決斷實遠在君上。 2、不可依隨NULL指標,如若不然,混沌癡顛必俟君於彼岸。 3、縱有天賦大智慧,知曉其事無礙,汝亦當盡數強制挪移函數參數為原型所期之資料類型,以免一時疏忽,致使資料類型向汝討還血債。 4、若標頭檔未於函數原型之中聲明傳回值類型,汝當親為此事,更須謹慎再三,以防不測降臨汝身。 5、汝須親核字串、數組操作之越界與否。古之聖人有言:嘗祈門人對答
Time of Update: 2018-12-04
C#語言有很多值得學習的地方,這裡我們主要介紹C# ThreadPool類,包括介紹ThreadPool.QueueUserWorkItem()方法等方面。在多線程的程式中,經常會出現兩種情況:一種情況: 應用程式中,線程把大部分的時間花費在等待狀態,等待某個事件發生,然後才能給予響應,這一般使用ThreadPool(線程池)來解決;另一種情況:線程平時都處於休眠狀態,只是周期性地被喚醒,這一般使用Timer(定時器)來解決;C#
Time of Update: 2018-12-04
Accessing Lua from C#Assumingyou've loaded your Lua Assemblies (lil files) into the global scope,how do you access functions and variables in Lua from C#?Lua global scope is defined inside the LuaState Global Table (L.Globals usually) and can be