Time of Update: 2018-12-03
該例子講了如何輸出一個libavformat庫所支援格式的媒體檔案。(1)av_register_all(),初始化libavcodec庫,並註冊所有的轉碼器和格式。(2)guess_format(),根據檔案名稱來擷取輸出檔案格式,預設為mpeg。(3)av_alloc_format_context()分配輸出媒體內容。 ov->oformat = fmt; snprintf( oc->filename, sizeof(oc->filename), “%s”,
Time of Update: 2018-12-03
本文利用C#和.NET提供的類來輕鬆建立一個抓取網頁內容來源代碼的程式 。HTTP是WWW進行資料訪問最基本的協議之一,在.NET的基本類型庫類中提供了兩個對象類:HTTPWebRequest和HTTPWebResponse,分別用來向某資源發送請求和獲得響應。為了得到一個資源的內容,我們先指定一個想要抓取的URL地址,用HTTPWebRequest對象進行請求,用HTTPWebResponse對象接收響應的結果,最後用TextStream對象來提取我們想要的資訊,並在控制台列印出來。
Time of Update: 2018-12-03
和其他語言一樣,C#實現檔案關聯同樣需要直接操作註冊表,即按規則分別設定副檔名,文件類型說明,易記名稱,表徵圖,調用方法等索引值即可,網上隨便查查就可以寫出以下的代碼。using Microsoft.Win32;RegistryKey key = Registry.ClassesRoot.OpenSubKey(".jb"); if (key == null) { key = Registry.ClassesRoot.CreateSubKey(".jb")
Time of Update: 2018-12-03
在.Net Framework SDK文檔中,關於調用Windows API的指示比較零散,並且其中稍全面一點的是針對Visual Basic .net講述的。本文將C#中調用API的要點彙集如下,希望給未在C#中使用過API的朋友一點協助。另外如果安裝了Visual Studio .net的話,在C:/Program Files/Microsoft Visual Studio
Time of Update: 2018-12-03
近日在看《C++ primer》,不得不說,中國的教材有些坑人,老師也有些坑人,只是說有些坑人,因為還是有些不錯的!在需要資料類型轉換時,我習慣於用()進行轉換,這也是譚浩強書本教的,也是大學老師教的方式。今天讀《C++ primer》方才知道這是一種C風格的資料類型轉換,是C++為了相容C而保留下來的。實際上,C++提供了類型轉換操作符供顯示的類型轉換,即:static_cast, dynamic_cast, const_cast,
Time of Update: 2018-12-03
Windows下C++程式預設的棧空間是2M(VC++2008編譯器預設1M,這個值是可以在編譯器中設定的。隨手寫了一段棧溢出的代碼: #include <iostream> using std::cout; using std::endl;int main() { int a[1024][256]={0}; //在棧上分配,大小為1M,運行時棧溢出掛掉! return 0; }最簡單的修改方法,聲明動態數組,在堆上面分配。如果對效能過于敏感,可以用記憶體池。
Time of Update: 2018-12-03
導讀: Calendar Time:日曆時間,是用“從一個標準時間點到此時的時間經過的秒數”來表示的時間。這個標準時間點對不同的編譯器來說會有所不同,但對一個編譯系統來說,這個標準時間點是不變的,該編譯系統中的時間對應的日曆時間都通過該標準時間點來衡量,所以可以說日曆時間是“相對時間”,但是無論你在哪一個時區,在同一時刻對同一個標準時間點來說,日曆時間都是一樣的。
Time of Update: 2018-12-03
晚上無意翻看Bjarne Stroustrup的'The C++ Programming Language Special Edition'(英文版)第94頁,章節5.4 Constants一節,看到這麼一句原文'C++ offers the concept of a user-defined constant, a const, to express the notion that a value doesn't change
Time of Update: 2018-12-03
C語言的標準庫函數包括一系列日期和時間處理函數,它們都在標頭檔中說明。下面列出了這些函數。在標頭檔中定義了三種類型:time_t,struct tm和clock_t。 在中說明的C語言時間函數 time_t time(time_t *timer); double difftime(time_t time1,time_t time2); struct tm *gmtime(const time_t *timer); struct tm *localtime(const time_t *timer)
Time of Update: 2018-12-03
導讀: C/C++編程易範的錯誤 摘自《windows 95編程指南》,[美]Stephen R.Davis 著 C/C++語言中有許多對初學者(甚至是有經驗的編程人員)來說很容易範的錯誤。通曉這樣的錯誤可使你免於陷入其中。 1.忘記初始化指標 這種錯誤只是一般"忘記初始設定變數"錯誤的一個特殊形式(C/C++中變數不會自動初始化,而Basic可以)。使這種錯誤更糟糕的原因是它的後果往往更加糟糕: void SomeFunction() { int *pnVar
Time of Update: 2018-12-03
1、你認為C語言[注1]是一門成功的語言嗎?如果認為是,那麼你認為它成功的關鍵在什麼地方?或者說它的魅力所在?2、C語言中的函數是否允許使用複合類型(如結構體類型)作為傳回值?3、C語言中的'一般算術運算'(usual arithmetic conversion)中蘊含著一種稱作'值保留(value
Time of Update: 2018-12-03
作者: 潘凱 出處: vchelp 責任編輯: 方舟 [ 2005-11-11 13:52 ]前言 本文通過觀察對象的記憶體布局,跟蹤函數調用的彙編代碼。分析了C++對象記憶體的布局情況,虛函數的執行方式,以及虛繼承,等等。 寫這篇文章源於我在論壇上看到的一個貼子。有人問VC使用了哪種方式來實現虛繼承。當時我寫了一點代碼想驗證一下,結果發現情況比我想象的要複雜。所以我就乾脆認真把相關的問題都過了一遍,並記錄成本文。 我對於C++物件模型的知識主要來自於Lippman的書《Inside
Time of Update: 2018-12-03
作者: 曹翼飛 出處: 放飛技術網 責任編輯: 方舟 摘要: 大家都知道變數的生存周期這個概念,可是有的時候變數生存周期已經結束,但是所分配的那塊記憶體空間還是存在的。文章舉了四個不同的例子,來說明這其中的原因。 前言:
Time of Update: 2018-12-03
作者: 杜紅超 何青青 出處: blog 責任編輯: 方舟一、為什麼用動態記憶體分配 但我們未學習鏈表的時候,如果要儲存數量比較多的同類型或同結構的資料的時候,總是使用一個數組。比如說我們要儲存一個班級學生的某科分數,總是定義一個float型(存在0.5分)數組:float
Time of Update: 2018-12-03
作者: MTT 工作室 出處: vckbase 責任編輯: 方舟 摘要:本文描述的是一種很常見的情況:當你在某個緩衝中儲存資料時,常常需要在運行時調整該緩衝的大小,以便能容納更多的資料。本文將討論如何使用 STL 的 vector 進行記憶體的再分配。 這裡描述的是一種很常見的情況:當你在某個緩衝中儲存資料時,常常需要在運行時調整該緩衝的大小,以便能容納更多的資料。傳統的記憶體再分配技術非常繁瑣,而且容易出錯:在 C 語言中,一般都是每次在需要擴充緩衝的時候調用 realloc()。在 C++
Time of Update: 2018-12-03
c++入門學習筆記指標篇來源:http://www.sudu.cn/info/html/edu/code/20071229/79821.html 指標長處: 1。為函數提供修改調用變元的手段; 2。支援C++動態分配子程式 3。能夠改善某些子程式的效率 4。為動態資料結構(如二叉樹、鏈表)提供支援 註:指標為程式引入了一層間接性,能夠操控指標而不直接操控對象。 1。可操控指標內含的地址也可操控指標所指的對象 2。指標可能並不指向任何對象,寫*pi時,可能會使程式在執行期錯誤,如定址到某個對象,
Time of Update: 2018-12-03
蛋疼的模板委託,每次看到都好糾結。#pragma onceclass Delegate_Listener{public:void Test(void*){MessageBox(0,_T("蛋疼的模板委託"),_T("艸"),MB_ICONINFORMATION | MB_OK);}};template<typename T,typename R = void>class Delegate{typedef R (T::* _callback)(void*);public:inline
Time of Update: 2018-12-03
本文屬借鑒他人之作,稍作修改: 折半尋找法也稱為二分尋找法,採用分治策略,可以以O(log
Time of Update: 2018-12-03
一,基礎篇很多時候我們不要用預設的allocator的實現,我們需要自己的記憶體配置,所以我們可以做自己的分配器,這裡說說必須要有的一些注意事項,因為有些是我犯錯過的。需要有自己的一些類型定義比如pointer需要做自己的allocate和deallocate一定要有rebind實現,如果不理解,請看一下標準庫裡面的list,set等的實現,很容易的。 附上代碼:template <typename T>class MyAlloc : public
Time of Update: 2018-12-03
一、C++的繼承1.類的繼承是物件導向的程式設計中提供的一種機制,它允許程式員在儲存原有的類的特性的基礎上,進行更具體、更詳細的類的定義。(可以與現實聯絡:父母與孩子)2.在C++類繼承中,一個衍生類別可以從一個基類派生,也可以從多個基類派生。從一個基類派生的繼承稱為單繼承。從多個基類派生的繼承稱為多繼承。3.C++中類的繼承方式有public、protected、private三種。4.注意:如果不顯示的給出繼承方式關鍵字,系統的預設值就認為是私人繼承(private)。二、存取控制以下內容主