Time of Update: 2018-12-05
平時要用到枚舉系統硬碟上的檔案的機會比較多,每次幾乎都會重複那一些步驟,而且要枚舉不同的檔案類型也是相當的不方便, 於是簡單的封裝了一個檔案尋找類,暫不支援多線程,不過回呼函數的使用相當的方便與簡潔 封裝的代碼 稍後上傳csdn資源 使用這個類的樣本如下: 首先包含類標頭檔 LxFileFinder.h 其他步驟請看下 /** by beyondcode*/ #include "LxFileFinder.h"#include <stdio.h&
Time of Update: 2018-12-05
轉自http://www.asarea.cn/showdiary.jsp?id=193許久沒有寫技術日誌了,今天寫一篇關於字串轉換的。大家都知道,在標準c++中有string和wstring,前者為多位元組ANSI字串,後者為寬位元組wide字串(UTF-16)。在一些應用中常常需要在二者之間以及與UTF-8之間進行字串轉換,這裡提供一個自己寫的類,用於之間的轉換。原理是利用windows的api:WideCharToMultiByte、MultiByteToWideChar。這兩個api的第一
Time of Update: 2018-12-05
volatile關鍵字是一種類型修飾符,用它聲明的類型變數表示可以被某些編譯器未知的因素更改。用volatile關鍵字聲明的變數i每一次被訪問時,執行組件都會從i相應的記憶體單元中取出i的值。沒有用volatile關鍵字聲明的變數i在被訪問的時候可能直接從cpu的寄存器中取值(因為之前i被訪問過,也就是說之前就從記憶體中取出i的值儲存到某個寄存器中),之所以直接從寄存器中取值,而不去記憶體中取值,是因為編譯器最佳化代碼的結果(訪問cpu寄存器比訪問ram快的多)。以上兩種情況的區別在於被編譯成彙
Time of Update: 2018-12-05
今天編程時想在類中聲明一個常量數組,發現無法初始化,後來在網上搜尋,證明這是一個無法解決的問題。 因為根據C++文法,常量聲明必須要在建構函式後用參數方式初始化,而x({1.0,2.0})又不符合文法。 只能聲明成static類型,然後在源檔案裡定義。 // a.hclass A{private: static const int xx[10];} // a.cppconst A::xx[10] = {1,2,3,4,5,6,7,8,9,0};
Time of Update: 2018-12-05
restrict關鍵字restrict關鍵字其實是在C語言才有的,是C99提出來的,目前C++還不支援。當一個指標在聲明的範圍內,所有該指標指向的記憶體地區資料只能通過它訪問,而不能通過別的指標。編譯器會對此做檢查。這樣的後果是協助編譯器進行更好的代碼最佳化,產生更有效率的彙編代碼。由於目前只有C99支援,所以編譯命令如下:gcc -std=c99 test.c -o test.bin注意:g++不支援-std=c99,並且也不支援restrict關鍵字 例如:void f(const int
Time of Update: 2018-12-05
在linux裡,提到網路編程,就會涉及到select,多工IO,雖然這個效率不是很高,但是對於一般應用還是足夠了。我寫了一個小程式,如下: #include <sys/select.h>#include <sys/socket.h>#include <stdio.h>#define NUM 2000int fds[NUM];int main(){ for( int i = 0; i < NUM; ++i ) { printf("
Time of Update: 2018-12-05
起因是因為一片文章,問到了一個問題,文章是這樣的:Originally Posted by 人就是這樣我想編一個程式,但學CompSci是很久以前的事情了。想請教請教大家。有兩個txt檔案,一個叫source.txt(有很多資料), 一個叫target.txt(空白的)我想把source.txt裡的一些資料提取出來(稍微修改一下),然後寫到target.txt裡面。舉個例子:sourse.txt裡的資料:2oi)4@##(
Time of Update: 2018-12-05
在方法、屬性的繼承中,new關鍵字表示隱藏基類的實現,使得子類也可以定義與基類同名同形參的方法和屬性。而override關鍵字表示重寫,基類的方法或屬性在子類中被重寫後,調用子類的方法或屬性一定會從子類執行。說得可能很拗口,但是舉個例子一看就明白了。先看new關鍵字的例子:基類 ControlModel.csusing System;namespace InhibitPropertyDemo{ public class ControlModel { private
Time of Update: 2018-12-05
這兩天又看了幾眼Socket編程,我老是沒長性,總是東看看西看看。還老愛挑毛病,鑽牛角尖,真是不可救藥了。這不,又開始看Socket不順眼了。當時是看了一個朋友給我的一段socket raw編程的代碼,有一段看的我很噁心。如下:if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0){ printf("WSAStartup failed: %d/n",ErrorCode); return 2; }
Time of Update: 2018-12-05
假設我們有這樣一個類:public class DataItemSection{ public byte BytePosition { get; set; } public byte BitNumber { get; set; }}如果我們要對 List<DataItemSection> 進行排序,要怎麼做呢?辦法有三種:改寫 DataItemSection 類的定義,使其繼承IComparable介面,並且要實現IComparable介面中的CompareTo()方法,
Time of Update: 2018-12-05
本文是關於一些很不起眼的編程小技巧的。一、以前,我代碼裡會這樣寫:public List<IMessageDataGroup> DataGroups { get; set; }等效於:private List<IMessageDataGroup> _dataGroups = null;public List<IMessageDataGroup> DataGroups{get { return this._dataGroups; }set {
Time of Update: 2018-12-05
我只舉例子,不解釋: private static Dictionary<ushort List<double>> fixedDictForDemo = new Dictionary<ushort, List<double>>() { { 1, new List<double>{ 0.00, 0.00, 0.00, 0.00 }},
Time of Update: 2018-12-05
一個C++程式員的Delphi學習筆記 說心裡話,站在一個C++程式員的立場,是有那麼一點看不上用Delphi的開發人員的。就幾周前,我還撰文維護過C++的尊嚴。種種原因,今天我卻須學習Delphi、熟悉Delphi,不由興起人生無常的感慨。 我給了自己十五天的時間,不知夠否掌握一門語言?我選擇了Marco
Time of Update: 2018-12-05
1.說明:如果作業系統是32位,則指標是按32位定址的,一個位元組8位,所以得出其長度為32/8=4 2.代碼void TestPointSize(char cArray[]){ cout<<sizeof(cArray); //output is :4,not 6 int iArray[5]={1,2,3,4,5}; int *pArray=iArray; //指標是按32位尋地址 cout<<"pArray size is:"<<sizeof(pArray)
Time of Update: 2018-12-05
/*"隱藏"是指衍生類別的函數屏蔽了與其同名的基類函數,規則如下:1.如果衍生類別的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字, 基類的函數將被隱藏(注意別與重載混淆)。2.如果衍生類別的函數與基類的函數同名,並且參數也相同,但是基類函數沒有virtual 關鍵字。 此時,基類的函數被隱藏(注意別與覆蓋混淆),注意這裡不是指標.*/#include "stdafx.h"#include <stdio.h>class A{public: void
Time of Update: 2018-12-05
// MyTransferTCHAR.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<stdlib.h>#include<Windows.h>#include<tchar.h> //include <string.h> vs
Time of Update: 2018-12-05
from: http://blog.csdn.net/matrix2003b/archive/2004/07/29/55022.aspx 用Regex解析C#檔案(Updated)Jack H Hansen [ 2004-07-28 ]Keywords C# Regex(Regular Expression) Syntax
Time of Update: 2018-12-05
Visual C#是微軟推出的新一代程式開發語言,Visual C#實現許多功能是通過調用.Net架構為其中所有.Net程式開發語言提供的一個公用的軟體包——.Net FrameWork SDK。在這個軟體包中提供了大量並且十分豐富的類庫,可以說,沒有這個軟體開發包,Visual C#就寸步難行,無法編寫哪怕一個功能十分的程式。但這樣也會出現一個問題,如果在.Net FrameWork SDK軟體包中沒有涉及到的功能,而在其他的第三方的COM組件中卻提供了,那麼這些組件是否可以被Visual
Time of Update: 2018-12-05
前陣子被問及一個在C中如何調用C++函數的問題,當時簡單回答是將函數用extern "C"聲明,當被問及如何將類內成員函式宣告時,一時語塞,後來網上查了下,網上有一翻譯C++之父的文章可以作為解答,遂拿來Mark一下。 將 C++ 函式宣告為``extern "C"''(在你的 C++ 代碼裡做這個聲明),然後調用它(在你的 C 或者 C++ 代碼裡調用)。例如: // C++ code:extern "C" void f(int);void f(int i){ // ...}
Time of Update: 2018-12-05
C語言的函數調用規則:所有參數都是傳值調用。但是我們平時所說的傳址調用是什麼呢?這就是我們這些所要