原创 windows 修改桌面快捷方式的名字

直接貼代碼~  #include <shellapi.h> #include <shlobj.h> #pragma comment(lib, "shell32.lib") bool _ChangeLinkFile(CString st

原创 踩過的坑—CString的format方法報錯Incorrect format specifier

前言 在CString上踩過很多坑,避免以後踩過相同的坑,就把該坑記錄~ 背景:在轉換環境變量函數裏輸出日誌多次調用了format方法,導致程序崩潰。 例子 類似這樣調用: CString strPath; // .... //strP

原创 在排序數組中查找某個值——要想到二分法

排序數組的查找問題首先考慮使用 二分法 解決,其可將遍歷法的 線性級別 時間複雜度降低至 對數級別 。 題目: 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小元素

原创 Mark一下:pip install失敗解決方法

問題: pip install itchat提示Could not find a version that satisfies the requirement skimage (from versions: ) 解決方法: 這可能是網絡問

原创 用windbg調試進入關鍵區死鎖情況

step1:!cs -l  得知進入死鎖的關鍵區 step2:~~[0x0000000000003558] 查看擁有陷入死鎖關鍵區的線程 step3:~*kn 查看調用EnterCriticalSection的線程   由上圖可知,線程

原创 Effective C++ 1-3

1.視C++爲一個語言聯邦 c++並不是一個語言,它是由4個次語言組成,分別是C、Object-Oriented C++、Template C++和STL。(其實這4部分不僅可以體現c++的主要特性,也可以從4個方面學習c++,並

原创 【後記】

Effective C++這本書今天就算看過一遍啦~每個條款的總結都在前面文章羅列了,因爲每個條款裏面很多知識點對於我來說都是比較新鮮的,所以就以一種記筆記形式記錄下來,可能個人總結佔比比較少,但是一步步來吧~ 目前計劃先把這些條款重點都

原创 curl庫的用法

介紹 libcurl作爲是一個多協議的便於客戶端使用的URL傳輸庫,基於C語言,提供C語言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LD

原创 c++ 以UTF-16LE編碼方式保存文件

1. 前言 正常情況下,c++保存文件的編碼方式一般爲ANSI。但爲了滿足一些需求,會要求保存文件的編碼方式爲UTF-16LE、UTF-8或Unicode。 瞭解相關知識發現,決定文件編碼方式主要是在於文件的BOM(Byte Order

原创 關於createMutex的神奇bug

前言 最近遇到一個神奇的bug:調用CreateMutex返回句柄值爲空,但GetLastError值爲0 解決思路 首先,該問題並沒有定位到原因,最後是換了個mutex名字就解決了。 1、使用Process Explorer查找當前創建

原创 EC43

43. 學習處理模板化基類內的名稱 如果編譯期間有足夠信息確定類型,可以採用基於template解法。 eg:如果要傳送消息給多個不同的公司,如果編譯期間有足夠的信息決定哪個信息傳至哪個公司,就可以採用基於template解法

原创 關於delete野指針沒有崩潰的神奇bug

前言 最近遇到一個神奇的bug:delete野指針沒有崩潰。 解決過程 查了很多資料,大致意思是c++沒有定義delete野指針的行爲,所以delete野指針的行爲不可定義,即有可能崩潰也有可能不崩潰。 印象比較深刻的一個比喻是: 指針指

原创 sizeof佔的內存大小

題目: 若char是一字節,int是4字節,指針類型是4字節,代碼如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 class CTest {     public:         CTest():m_chDat

原创 c++ 釋放資源

1、適合場景 有時候會想在A.exe釋放b.exe以供A.exe使用,這時候就會用到釋放資源這玩意~ 2、涉及函數以及調用次序 2.1  查找資源:FindResource 2.2  加載資源:LoadResource 2.3 鎖住資源:

原创 VS 運行庫MT和MD的區別

前言 日常工作中總會遇到將項目統一配置爲MD,知其然不知所以然。。。。。。所以就有了這篇文章來知其所以然。。。。。 VC項目屬性→配置屬性→C/C++→代碼生成→運行時庫 可以採用的方式有:多線程(/MT)、多線程調試(/MTd)、多線程