原创 C++基於ATL工程編寫ActiveX控件

開發環境:VS2010 開發工程:C++ATL項目 開發目的:創建ActiveX實現js調用 步驟: 1.      創建一個ATL工程 應用程序類型選擇動態鏈接庫(DLL),勾選支持COM+1.0,勾選支持部件註冊器 2.

原创 SOCKET端口複用

在WINDOWS的SOCKET服務器應用的編程中,如下的語句或許比比都是:  s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); saddr.sin_family = AF_INET;  saddr.

原创 在Linux中使用線程

我並不假定你會使用Linux的線程,所以在這裏就簡單的介紹一下。如果你之前有過多線程方面的編程經驗,完全可以忽略本文的內容,因爲它非常的初級。 首先說明一下,在Linux編寫多線程程序需要包含頭文件pthread.h。也就是說你在

原创 MFC的一些實用的基礎知識

一、_T()函數 _T("")是一個宏,他的作用是讓你的程序支持Unicode編碼。因爲Windows使用兩種字符集ANSI和UNICODE,前者就是通常使用的單字節方式,但這種方式處理象中文這樣的雙字節字符不方便,容易出現半個漢字的

原创 使用Win32 API做個系統托盤圖標

系統托盤在我們使用的程序中很普遍,下面我們來看一個很不錯的例子,使用Win32 API實現,對理解系統托盤有些幫助。 #include <windows.h> #define IDR_PAUSE 12 #define IDR_START

原创 Windows GDI、DC

GDI     Windows環境下的圖形組件,介於應用程序與繪圖設備驅動之間,爲應用程序提供了一套與具體設備無關的繪圖程序接口。     Device Context     是對具體繪圖設備的一個抽象,用以加載特定的繪圖設備驅動

原创 橡皮筋類(CRectTracker)

Windows自帶的畫圖軟件中可以用虛線框選擇圖像的某個區域,之後便可以拖動、放大、縮小該區域,這是通過橡皮筋類(CRectTracker)來實現的,它將實現用線框選中一個區域,並可以拖動、放大、縮小該區域。 簡介: CRect

原创 gloox 心跳處理封裝

通常在客戶端與服務器之間需要心跳來維繫連接,XMPP可以通過一個擴展協議XEP-0199來實現客戶端與服務器端的心跳。 封裝思路: 在程序中另起一個線程專門用做心跳處理;GLOOX庫裏對XEP-0199的ping發送實現是在Cl

原创 掌握Linux編程的10個步驟

做linux c語言開發有一小陣子了,在這邊自己總結了些心得,相信能讓不懂得Linux編程的人慢慢步入Linux殿堂。有任何不對或不準確之處歡迎討論。 1. 安裝 linux 操作系統 既然要學習linux下的c語言開發,那麼安裝個

原创 VS2010中文註釋帶紅色下劃線的解決方法

環境:Visual Studio 2010 問題:代碼中出現中文後會帶下劃線,很多時候感覺很不舒服。找了很久的原因沒找到,後來無意中在VisualAssist X裏找到了解決辦法。 1.安裝完Visual Assist X後會在

原创 QJson編譯

1.下載安裝cmake,假設安裝路徑爲D:\Qt\cmake-2.8.10.2-win32-x86\ 2.從QT菜單【Qt 4.8.3 Command Prompt】中進入命令行窗口,執行下面命令 set path=%path%;D

原创 提升代碼內外部質量的22條經驗

本文主要關注代碼的內部和外部質量,編程的價值觀,代碼質量的評估標準,整潔代碼的匠藝以及如何維護已有的代碼。 外部質量:用戶所能感受到的部分,正確性,易用性,效率,可靠性。 內部質量(代碼質量):可維護性,靈活性,可移植性,重用,可讀

原创 QString類說明

QString QString::number ( ulong n, int base = 10 ) [靜態] 這是一個重載成員函數,提供了方便。它的行爲基本上和上面的函數相同。 也可以參考setNum()。 QString QStr

原创 在VS2010中開發ActiveX控件設置測試容器的方式

        在VS2010中開發MFC ActiveX控件,開發完後,通常使用VS自帶的容器ActiveX Control Test Container來運行ActiveX控件。此容器在VS安裝後的文件中是找不到的,需要自己手動獲取

原创 socket select()用法

一、winsock中 #include <winsock.h> 原型 int select( int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, const