原创 用戶模式下的多線程同步——原子訪問(Interlocked系列函數)

下面這段代碼,通過倆個線程改變一個全局變量的值,咋一看,沒什麼問題,g_x通過每個線程都自增1,最後g_x的值爲2。但實際上有多個線程改變共享變量的值時,如果不加其他任何操作,是很危險的,最後共享變量的值往往不可預見。 簡單分析

原创 用戶模式下的線程同步——Slim讀/寫鎖

SRWLock的目的和關鍵段一樣,但不同的是SRWLock可以區分哪些線程要讀取共享資源,哪些要更新共享資源。讀取共享資源的線程因爲不會破壞共享資源的數據,故這些線程可以同時讀取同一共享資源,但要更新共享資源的線程必須獨佔共享資源

原创 C++ 多態 (純)虛函數 虛函數表解析

多態 定義: 多態性可以簡單地概括爲“一個接口,多種方法”,程序在運行時才決定調用的函數 原理: C++多態性是通過虛函數來實現的 多態與非多態的實質區別就是函數地址是早綁定還是晚綁定。如果函數的調用,在編譯器編譯期間就可以確

原创 移動端手指上下滑動切換插件pageSlider

轉載於(下載該插件): http://www.jq22.com/jquery-info8395### PageSlider 是一個基於zepto.js用於實現H5單頁面跟隨手指上下滑動切換的組件,支持通過transform3D啓動

原创 CLR 通用語言運行庫 dll工程的調試

CLR 通用語言運行庫 dll工程的調試 項目背景: MFC.exe調用C#.dll的方法,需要調試C#.dll的方法。MFC.exe啓動後,在C#.dll的代碼中附加到進程MFC.exe,但是不能命中斷點。 對策: 附加的時候,

原创 CSS 樣式設置: 水平居中

我們實際工作中常會遇到需要設置水平居中的場景,比如爲了美觀,文章的標題一般都是水平居中顯示的。 這裏水平居中分倆種情況: 行內元素、塊狀元素(定寬塊狀元素、不定寬塊狀元素)。 一 行內元素 如果被設置元素爲文本、圖片等行內元素

原创 CSS樣式-垂直居中

我們實際工作中常會遇到需要設置垂直居中的場景,比如報紙的文章標題在左右一側時,常常設置垂直居中,用了更好的用戶體驗。 這裏垂直居中分倆種情況: 父元素高度確定的單行文本、父元素高度確定的多行文本。 一 父元素高度確定的單行文本

原创 setInterval、setTimeout不能傳遞帶參數

解決辦法:匿名函數包裝, 既可以週期性執行foo(id)這個函數,而且把變量id傳遞進去了 window.setInterval(function() { foo (id); }, 1000); 點贊

原创 如何獲取操作系統的語言版本

對於支持多語言版本的程序來說,可能需要根據操作系統的語言版本來加載不同的dll或rc,以實現多國語的目的。 至於如何加載dll或rc,請參考下面鏈接

原创 .Net 與TLS版本的兼容性

.NET 在支持 TLS 1.1 或 TLS 1.2 操作系統中運行時,兼容最新版本 .NET 4.6 和更高版本 兼容 TLS 1.1 或更高版本(默認設置)。 .NET 4.5 至 4.5.2 默認情況下,.NET 4.

原创 HTML、CSS、JavaScript前端編碼規範

HTML、CSS http://www.runoob.com/w3cnote/html-css-guide.html JavaScript http://www.runoob.com/w3cnote/javascript-guid

原创 MFC 工程變名

最近要把項目中其中幾個MFC程序做成倆份,分別給不同的exe調用,現舉例說明下過程: 環境: VS2013 不用修改程序這些文件名: .cpp、.h和.rc等等 假設要把A.dll 變成A1.dll(本體)和A2.dll(複製A.

原创 基於MFC的Windows多國語版本軟件 —— 加載資源dll

基於MFC的Windows軟件——常用的製作多國語版本有倆種方法: 一: 每個語言對應一套資源文件(.rc),根據系統語言讀取不同的資源文件,使用於界面簡單,要顯示的文字較少的項目 二: 每個語言對應做一個dll,根據系統語言

原创 指針傳值易注意點

struct _ClassA { int x; int y; }ClassA, PCLassA Fun(ClassA *p) { ClassA a; a.x = 1; a.y = 2;

原创 用內核對象進行線程同步——信號量內核對象

信號量內核對象包含一個使用計數,還有另外倆個32位值:一個最大資源計數,一個當前資源計數。 最大資源計數表示信號量可以控制的最大資源數量,即可以同時調度的最大線程數;當前資源計數表示信號量當前可用資源的數量,即當前可調度的線程數。 信號