首頁(yè) → 編程開(kāi)發(fā) → VC|VC++ → 列表
Astyle是一個(gè)開(kāi)源代碼格式化工具,大家經(jīng)常要遵照一些設(shè)計(jì)規(guī)范,如命名規(guī)則、代碼格式規(guī)范等等;蛘叽蠹以诳匆恍﹦e人寫(xiě)的代碼時(shí),若代碼格式不是很規(guī)范時(shí),看起來(lái)是比較麻煩的。Artistic源碼格式化工具可以使大家在日常開(kāi)發(fā)中非常方便的調(diào)整大家的代嗎格式。支持多
VCL庫(kù)函數(shù)簡(jiǎn)介 一.BORLAND C++ BUILDER VCL的內(nèi)存管理函數(shù)1. AllocMem在隊(duì)中分配指定字節(jié)的內(nèi)存塊,并將分配的每一個(gè)字節(jié)初始化為 0.函數(shù)原型如下:void * __fastcall AllocMem(Cardinal Size);2. SysFreeMem釋放所指定的內(nèi)存塊.函數(shù)原型如下:int __fastcall S
GDB是一個(gè)強(qiáng)大的命令行調(diào)試工具。大家知道命令行的強(qiáng)大就是在于,其可以形成執(zhí)行序列,形成腳本。如果你是在UNIX平臺(tái)下做軟件,你會(huì)發(fā)現(xiàn)GDB這個(gè)調(diào)試工具有比VC、BCB的圖形化調(diào)試器更強(qiáng)大的功能。所謂“寸有所長(zhǎng),尺有所短”就是這個(gè)道理。gdb(GNU Debuge
現(xiàn)在很多學(xué)C的朋友大部都了解,有一種可以類擬化Delphi的界面開(kāi)發(fā)控件庫(kù)QT Qt工具包進(jìn)行圖形用戶界面編程。它沒(méi)有包括所有的東西:強(qiáng)調(diào)的是教授一種圖形用戶界面編程的編程思想,并且介紹Qt的特征也是必需的。一些通常情況下使用的特征在這個(gè)教
.NET下的很多技術(shù)都是基于反射機(jī)制來(lái)實(shí)現(xiàn)的,反射讓.NET平臺(tái)下的語(yǔ)言變得得心應(yīng)手。最簡(jiǎn)單的,比如枚舉類型,我們我可以很容易的獲得一個(gè)枚舉變量的數(shù)值以及其名稱字符串。 可是,在C++中,枚舉變量本質(zhì)上和一個(gè)整形變量沒(méi)有區(qū)別,我們很難獲取
對(duì)C++ 了解的人都應(yīng)該知道虛函數(shù)(Virtual Function)是通過(guò)一張?zhí)摵瘮?shù)表(Virtual Table)來(lái)實(shí)現(xiàn)的。簡(jiǎn)稱為V-Table。 在這個(gè)表中,主是要一個(gè)類的虛函數(shù)的地址表,這張表解決了繼承、覆蓋的問(wèn)題,保證其容真實(shí)反應(yīng)實(shí)際的函數(shù)。這樣,在有虛函數(shù)的類的實(shí)例中這個(gè)表
接下來(lái)今天講數(shù)據(jù)結(jié)構(gòu)——圖的遍歷~上個(gè)學(xué)期在上海泰瑞達(dá)的春季招聘中曾被考過(guò)這類問(wèn)題。前面有一題是多態(tài)和另外一個(gè)名詞的解釋,有點(diǎn)記不清了。然后還有一道題考的是括號(hào)解析,這個(gè)很簡(jiǎn)單的,用棧就能直接處理。然后后面就是連續(xù)的兩個(gè)圖的問(wèn)題。之前好像只是
問(wèn)題描述: 給定兩個(gè)字符串s1和s2,要求判定s2是否能被s1循環(huán)移位(rotate)得到的字符串包含。例如,給定字符串s1=AABCD和s2=CDAA,返回true;給定s1=ABCD和s2=ACBD返回false。 分析: 從問(wèn)題的描述來(lái)看,最直接的方式就是對(duì)字符串s1進(jìn)行循環(huán)移位,再判斷
冒泡排序是一種簡(jiǎn)單排序。這種排序是采用“冒泡策略”將最大元素移到最右邊。在冒泡過(guò)程中,相鄰兩個(gè)元素比較,如果左邊大于右邊的,則進(jìn)行交換兩個(gè)元素。這樣一次冒泡后,可確保最大的在最右邊。然后執(zhí)行n次冒泡后排序即可完畢。 程序代碼如下: // BubbleS
借助Ecplise的強(qiáng)大功能,我們可以通過(guò)給Ecplise增加CDT插件來(lái)開(kāi)發(fā)C/C++程序,下面是我配置CDT插件的總結(jié)過(guò)程,主要為了方便以后練習(xí)一些Demo程序時(shí)使用。編譯環(huán)境采用的是Cygwin。使用Ecplise4.2 + CDT8.1.2 +Cygwin2.774。建議先閱讀第6條的注意事項(xiàng)。強(qiáng)烈介意
本文主要介紹了VC++語(yǔ)句語(yǔ)言/MFC中如下內(nèi)容的剪貼板操作:1、文本內(nèi)容的操作2、WMF數(shù)據(jù)的操作3、位圖的操作4、設(shè)置應(yīng)用自定義各式5、感知剪貼板內(nèi)容的改變6、自動(dòng)將數(shù)據(jù)粘貼到另一應(yīng)用程式窗口一、文本內(nèi)容的操作下面的代碼示范了怎能將文本內(nèi)容復(fù)制到剪貼板(Unico
最近在看進(jìn)程間的通信,看到了fork()函數(shù),雖然以前用過(guò),這次經(jīng)過(guò)思考加深了理解。現(xiàn)總結(jié)如下: 1.函數(shù)本身 (1)頭文件 #include<unistd.h> #include<sys/types.h> (2)函數(shù)原型 pid_t fork( void); 。╬id_t 是一
盡管這個(gè)概念已經(jīng)讓人說(shuō)濫了 ,還是想簡(jiǎn)單記錄一下, 以備以后查詢。 #ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif#define _CR
new和delete可以有效、直接的進(jìn)行動(dòng)態(tài)內(nèi)存的分配和釋放。 運(yùn)算符new返回指定類型的一個(gè)指針,如果分配失。ㄈ鐩](méi)有足夠的內(nèi)存空間)時(shí),則返回0. 如: 1 double *p; 2 p = new double; 3 *p = 3.1; //將值存放在開(kāi)辟的單元中 系統(tǒng)自動(dòng)根
我曾經(jīng)自學(xué)過(guò)C++,現(xiàn)在回想起來(lái),當(dāng)時(shí)是什么都不懂。說(shuō)不上能使用C++,倒是被C++牽著鼻子走了。高中搞NOIP并不允許使用STL庫(kù),比賽中C++面向?qū)ο蟮臋C(jī)制基本沒(méi)有什么用武之地,所以高中搞NOIP名為用C++,其實(shí)就是c加上了cout和cin。 前幾天看韓老師的《老碼識(shí)途》
C++程序的調(diào)試一般有調(diào)試器、printf、日志文件三種。Linux下的調(diào)試器為gdb,關(guān)于gdb的使用甚至可以單獨(dú)用一本書(shū)來(lái)說(shuō)明,但是本章并不會(huì)過(guò)度討論gdb,讀者可以尋找相關(guān)的資料閱讀。Gdb是C++程序調(diào)試中非常重要的調(diào)試手段,其有如下特點(diǎn): •通過(guò)增加斷點(diǎn),可
內(nèi)存管理是C++最令人切齒痛恨的問(wèn)題,也是C++最有爭(zhēng)議的問(wèn)題,C++高手從中獲得了更好的性能,更大的自由,C++菜鳥(niǎo)的收獲則是一遍一遍的檢查代碼和對(duì) C++的痛恨,但內(nèi)存管理在C++中無(wú)處不在,內(nèi)存泄漏幾乎在每個(gè)C++程序中都會(huì)發(fā)生,因此要想成為C++高手,內(nèi)存管理一
早就想寫(xiě)寫(xiě)幾個(gè)排序的算法了,原來(lái)一直是直接調(diào)用庫(kù)函數(shù)sort()和qsort(),導(dǎo)致自己對(duì)它們內(nèi)部是實(shí)現(xiàn)機(jī)理有些忽視,F(xiàn)在就把我剛剛手寫(xiě)的一個(gè)歸并排序(時(shí)間復(fù)雜度是o(n*log(n))),其中我是用遞歸來(lái)實(shí)現(xiàn)的。在代碼中我還比較了手寫(xiě)歸并,sort(),qsort(),的效率。
對(duì)于冒泡排序,大家肯定都熟知,每一輪的冒泡都將最大的數(shù)排到最前面,每一輪的時(shí)間復(fù)雜度是O(n),如果要排序的數(shù)組大小為n,要經(jīng)過(guò)n輪才能將數(shù)組中所有元素排序,所以總共的時(shí)間復(fù)雜度為O(n2)。 關(guān)于冒泡排序的源碼如下: 迭代型冒泡排序 #include <std
【程序1】題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?1.程序分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。 2.程序源代碼:#include "stdio.h"#include "
盡管C++ 野指針和內(nèi)存泄漏一直被詬病,但是在實(shí)時(shí)性很強(qiáng)的應(yīng)用場(chǎng)合,c++ 仍然是不二之選。游戲服務(wù)器開(kāi)發(fā)仍然使用c++ 作為主語(yǔ)言,但是大多結(jié)合動(dòng)態(tài)腳本技術(shù),一方面規(guī)避了野指針和內(nèi)存泄露,一方面獲得了開(kāi)發(fā)效率和擴(kuò)展性的紅利。今天主要說(shuō)說(shuō)在使用c++過(guò)程中,如
講述兩點(diǎn): 1、匯編下的p與*p2、有關(guān)指針初始化的金科玉律 int* p; p與*p,相信很多人都在這犯過(guò)迷糊,最后在死記硬背中記住了他們的區(qū)別,但實(shí)際怎樣,也沒(méi)有親自到內(nèi)存中看過(guò),這里,就帶您到內(nèi)存中看看,到匯編中溜溜,看看p與*p的廬山真面目。 簡(jiǎn)單
與緩存區(qū)相關(guān)最常見(jiàn)的操作就是字符的輸入與輸出操作getchar,getc,getch,getche,gets系列函數(shù)。第一個(gè)例子(與getchar有關(guān)): 代碼如上,當(dāng)輸入一個(gè)字符按下回車后程序沒(méi)有等待你二次輸入就結(jié)束了,而且無(wú)論輸入什么運(yùn)行結(jié)果均是10,是不是很奇怪(反正我第一次
用過(guò)python的朋友應(yīng)該知道,python的string中有個(gè)replace函數(shù),其功能是實(shí)現(xiàn)字符串的替換,默認(rèn)情況下是替換所有,如果加入?yún)?shù)的話會(huì)根據(jù)設(shè)定的個(gè)數(shù)進(jìn)行替換,比如下面的例子: >>> import string >>> str1 = "ab1ab2ab3ab4"
1. main()函數(shù):操作系統(tǒng)通過(guò) main 函數(shù)返回的值來(lái)確定程序是否成功執(zhí)行完畢。返回0值表明程序程序成功執(zhí)行完畢。任何其他非零的返回值都有操作系統(tǒng)定義的含義。 2. 每個(gè)輸出操作符實(shí)例都接受兩個(gè)操作數(shù):左操作數(shù)必須是 ostream 對(duì)象;右操作數(shù)是要輸出的值。3
眾所周知,如果自己忘了系統(tǒng)密碼,就只能重裝系統(tǒng)或者去買工具軟件進(jìn)行軟件的破解。但很多都局限于應(yīng)用工具,那我們學(xué)C的能自己創(chuàng)造一個(gè)工具嗎? 回答當(dāng)然是Yes, C 和匯編是程序開(kāi)發(fā)中的王者,無(wú)所不能,當(dāng)然了,得你自己去足夠的內(nèi)力才能發(fā)揮他的功能。 現(xiàn)在我們就
C++中經(jīng)常出現(xiàn)函數(shù)名字一樣,但參數(shù)列表或返回值不同的函數(shù),要搞清楚函數(shù)的正確調(diào)用關(guān)系,需理清三個(gè)概念:重寫(xiě)(override)、重載(overload)、重定義(redefine)。 一、三個(gè)基本概念 1、重定義(redefine):派生類對(duì)基類的成員函數(shù)重新定
win7下VC6 打開(kāi)添加無(wú)法使用的解決辦法:1.下載微軟發(fā)布的補(bǔ)丁,filetool,不過(guò)是以未編譯工程的形式發(fā)布的.解壓出來(lái),記住路徑2.找到目錄,雙擊 filetool.dsw運(yùn)行,(用VC6打開(kāi) filetool.dsw文件)3.選擇 win32 release編譯方式,編譯
Ambiguous operators need parentheses -----------不明確的運(yùn)算需要用括號(hào)括起 Ambiguous symbol ''xxx'' ----------------不明確的符號(hào) Argument list syntax error ----------------參數(shù)表語(yǔ)法錯(cuò)誤 Array bounds missing ------------------丟失數(shù)組界限符
抽象類(abstract class)和接口(interface)的概念是面向?qū)ο笤O(shè)計(jì)中常用的概念, 也是比較容易混淆的概念. 在這里, 我提出一種區(qū)分它們的思路:1. 如果一個(gè)類B在語(yǔ)法上繼承(extend)了類A, 那么在語(yǔ)義上類B是一個(gè)類A.2. 如果一個(gè)類B在語(yǔ)法上實(shí)現(xiàn)了(implement)接口
使得hook更加靈活,支持卸載計(jì)算指令長(zhǎng)度使用另一個(gè)LDE32,代碼簡(jiǎn)潔,很容易看懂Stub更加簡(jiǎn)潔,保存了寄存器,可以支持hook __fastcall的函數(shù)增加了一個(gè)結(jié)構(gòu)體HOOKENVIRONMENT,一般情況下用不到,主要用來(lái)卸載的^_^使用中有什么問(wèn)題跟帖說(shuō)明/*///////
一般來(lái)說(shuō),VB和VC共同編程有3種方式:一種是VC生成DLL,在VB中調(diào)用DLL;一種是VC生成ActiveX控件(.ocx),在VB中插入;還有一種是在VC中生成ActiveX Automation服務(wù)器,在VB中調(diào)用。相對(duì)而言,第一種方法對(duì)VC編程者的要求最低,但要求你的伙伴進(jìn)行配合,我推薦
1.一致性原則無(wú)論是采用駝峰命名法或者匈牙利命名法都可以,但是在項(xiàng)目中一定保持一致的風(fēng)格,一致帶來(lái)的好處不言而喻。2.不要輕易使用縮寫(xiě)除非該縮寫(xiě)在其他地方使用非常普遍,否則不要?jiǎng)?chuàng)造縮寫(xiě)。3.枚舉和常量命名加前綴”k” 原文地址: http://
拉斯維加斯算法的一個(gè)顯著特征是它所作的隨機(jī)性決策有可能導(dǎo)致算法找不到所需的解。因此通常用一個(gè)bool型函數(shù)表示拉斯維加斯算法。void Obstinate(InputType x, OutputType &y){// 反復(fù)調(diào)用拉斯維加斯算法LV(x, y),直到找到問(wèn)題的一個(gè)解bool success= false;w
關(guān)于編程的學(xué)習(xí),大家肯定都知道,也是大家都說(shuō)來(lái)說(shuō)去的,就幾句話:1.多看書(shū)。2.多看代碼。3.多敲代碼。這些我不想多說(shuō),也覺(jué)得沒(méi)有多說(shuō)的必要。經(jīng)常在CSDN上看到有人問(wèn)“我學(xué)習(xí)C++一段時(shí)間了,該如何進(jìn)階?”,然后接著就是一大堆的人,重復(fù)這上面的三句話
聯(lián)系我們 | 發(fā)展歷程 | 版權(quán)聲明 | 下載幫助(?) | 廣告服務(wù) | 軟件提交 | 網(wǎng)站地圖 | 意見(jiàn)反饋
聲明:西西軟件園為非贏利性網(wǎng)站 不接受任何贊助和廣告