原创 MFC 多線程總結

(一) MFC對多線程編程的支持             MFC中有兩類線程,分別稱之爲工作者線程和用戶界面線程。二者的主要區別在於工作者線程沒有消息循環,而用戶界面線程有自己的消息隊列和消息循環。          工作者線程沒有消息機

原创 MFC獲取本機IP地址

獲取本機IP地址  CString sLoginUser; CString sLocalIP; WORD wVersionRequested; WSADATA wsaData; wVersionRequested = MAKEWORD(

原创 __declspec(dllexport) & __declspec(dllimport)

__declspec(dllexport) 聲明一個導出函數,是說這個函數要從本DLL導出。我要給別人用。一般用於dll中  省掉在DEF文件中手工定義導出哪些函數的一個方法。當然,如果你的DLL裏全是C++的類的話,你無法在DEF裏

原创 心跳包

用來判斷對方(設備,進程或其它網元)是否正常運行,採用定時發送簡單的通訊包,如果在指定時間段內未收到對方響應,則判斷對方已經離線。用於檢測TCP的異常斷開。基本原因是服務器端不能有效的判斷客戶端是否在線,也就是說,服務器無法區分客戶端是長

原创 MFC多個控件在對話框上的大小變化

 對話框中多個控件隨窗體大小變化: 在類中加成員函數和成員變量:          void SetControlInfo(WORD CtrlId);  protected: int m_nCx, m

原创 流媒體方案

首先看下項目需求:    1.最多同時支持16路音視頻同時顯示。    2.窗口模式,全屏,1窗口,4窗口,9窗口,16窗口。    3.播放控制,開始播放,停止播放,開啓音頻,停止音頻,雲臺控制,Cam

原创 CreateProcess執行一個控制檯程序,隱藏窗口

STARTUPINFO   StartupInfo;//創建進程所需的信息結構變量    PROCESS_INFORMATION   ProcessInfo;      GetStartupInfo(&StartupInfo);    

原创 全屏方案

void CDemoPlay::OnLButtonDblClk(UINT nFlags, CPoint point) {  // TODO: Add your message handler code

原创 Windows服務編寫原理及探討(三)

(三)對服務的深入討論之下   現在我們還剩下一個函數可以在細節上討論,那就是服務的CtrlHandler函數。   當調用RegisterServiceCtrlHandler函數時,SCM得到並保存這個回調函數的地址。一個SCP調一個告

原创 Windows服務編寫原理及探討(二)

(二)對服務的深入討論之上   上一章其實只是概括性的介紹,下面開始纔是真正的細節所在。在進入點函數裏面要完成ServiceMain的初始化,準確點說是初始化一個 SERVICE_TABLE_ENTRY結

原创 AVI文件格式

AVI(Audio Video Interleaved的縮寫)是一種RIFF(Resource Interchange File Format的縮寫)文件格式,多用於音視頻捕捉、編輯、回放等應用程序中。通常情況下,一個AVI文件可以包含多

原创 基於live555的流媒體代理轉發服務器

對於併發量並不大而且對性能要求不是很高的流媒體傳輸模塊,live555還是很好的選擇,下面說一下我所實現的流媒體代理服務器(目前只能實現對H264單視頻的轉發) 代理轉發主要分爲對RTSP的轉發與對RTP的轉發(沒有實現對rtcp的轉發)

原创 UDP協議及包格式

UDP協議的主要特點 UDP是一種無連接的、不可靠的傳輸層協議; 在完成進程到進程的通信中提供了有限的差錯檢驗功能; 設計比較簡單的UDP協議的目的是希望以最小的開銷來達到網絡環境中的進程通信目的; 進程發送的報文較短,同時對報文的可靠

原创 CString的多種初始化

1.直接將字符串賦值給CString對象 代碼如下: CString str1=“songxiwei”; 2.通過構造函數初始化 代碼如下: CString str2(' ',100);預分配100字節,填充空格 3.加載工程中字符串資源

原创 LINK : warning LNK4098: 默認庫“LIBCMTD”與其他庫的使用衝突

以前經常遇到這個警告信息,因爲運行並沒有什麼問題,所以也沒深究。但是耿耿於懷那個“ 0 個錯誤,0 個警告”的成功提示,在網上搜了一下。原來問題出在默認庫的引用選擇上。 VS2008,項目——屬性——配