原创 C++ 異常拋出以及捕獲

臨近離職,決定補一下之前一直沒來得及學的C++11的知識,突然翻到了異常處理,感覺有點好玩就自己寫了個測試程序,然後三觀徹底被顛覆了。源代碼如下: #include <iostream> #include <string> #include

原创 STL 之 list node分析

還是談STL源碼分析吧,這部分看書這的看不下去,我是看的侯捷老師的視頻看下去的。他對比了2.9版和4.9版的list node的設計,我相對還是比較欣賞4.9的設計的,因爲4.9的設計更加符合高內聚,低耦合的特性。 先來看2.9版的:這樣的

原创 STL 之 VS版本 與 gunc版本 對比效率

還記得上一篇我們跟蹤了new這個操作符,這個是在VS上操作的,但是也發現了一些問題,似乎VS上的一些設計沒有那麼高效,只是實現了那些功能。比如下面這段代碼: DWORD dwbegin = GetTickCount(); for(i

原创 STL 之 operator new 函數

在STL源碼剖析中有提到operator new 這個函數,然後也有說道new 的下面會調用operator new,博主覺得這段話有問題,原因有二:1、operator 是操作符的關鍵字,比如我們要重載一個操作符,我們的寫法肯定是 ope

原创 記一次core 文件調試

無論是linux系統,還是windows系統,我們都有可能因爲各種原因導致程序崩潰,那麼這種情況下如何確認崩潰在哪了呢? windows系統 這裏是採用windows的api來產生dump文件 產生minidump的方法,網上都有,可以搜

原创 VS 編譯出現nmake 不是內部命令

試過了網上的各種辦法,還是有各種編譯的問題,最後看到有一種方法可以快速解決,只是有點麻煩。 找到vs安裝目錄下vcvarsall.bat,然後執行就可以了,記住,一個CMD窗口必須執行一次,所以很麻煩。

原创 C++ 網絡開發(一) 基本Socket搭建以及理解

直接看代碼和註釋,本部分代碼來源於網絡視頻 服務端: #define WIN32_LEAN_AND_MEAN //Windows.h 包含了早期的sock 1版本的實現,爲了避免這些實現影響到sock 2的編譯,這裏就加入這個宏,儘可能引

原创 BOOST庫日常挑刺 之 scope_ptr 傳遞所有權

根據官方的介紹,scope_ptr 是沒法傳遞所有權的,但是卻可以獲取他的原始指針,這似乎有些矛盾啊!直接看程序吧! class Student { public: Student(std::string name):m_name(

原创 CrackMe(一)

本次Crack的程序叫做 Acid burn 鏈接地址:chm::/Acid%20burn.zip 有興趣的同學可以試試步驟一般爲這麼幾步:1、查殼2、脫殼3、查找關鍵跳轉4、分析並修改跳轉條件 這個程序沒殼,就不分析了:走到第三步我們先來

原创 BOOST_FOREACH 的奇葩發現

函數形式:BOOST_FOREACH(type name, container);用於遍歷容器裏面的內容,但是如果遇到map等裏面自帶逗號的數據結構時,就會有問題。比如 std::vector<std::map<std::string, s