Time of Update: 2018-12-05
在H.264中
Time of Update: 2018-12-05
//*****************************************伺服器接收代碼*******************************************unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, IdBaseComponent,
Time of Update: 2018-12-05
對於這個函數,MSDN是這樣描述的:Called by the framework to exchange and validate dialog data.大意是架構調用此函數來改寫與確認對話方塊資料。 反正我沒明白這句話的意思。 到是看了下DoDataExchange函數裡的DDX型函數,似乎明白了DoDataExchange函數的作用。最近看書的效果很明顯哇。
Time of Update: 2018-12-05
對於設計模式,我的認識還不是很深,也許我在用,但是,並不能把它上升到理論的高度,到目前為止,我可能最為熟悉的應該是MFC的那一套,下一次,我準備把WINDOWS的訊息機製做一個自己的總結。而今天,我想談的一種設計模式,我覺得很棒,至少在我看來很有實用價值,理解起來也很自然,而且,我自己把這種觀察者模式稱為“教師學生授課模式”。
Time of Update: 2018-12-05
不知不覺已經工作三年了,回顧自己三年的程式員生涯,總結了一些東西,希望對想從事程式員工作的xdjm們有些協助。如何從編程愛好者進階為職業程式員:一、簡單才是美好的代碼一定是最簡單的,這應該是每個職業程式員心中萬世不變的箴言。一個簡單的“hello world”,可以有十幾種實現,但是職業程式員絕對不會標新立異,他們會選擇最簡單最常用的那種。為什麼要寫簡單的程式?一、簡單的程式易於擴充;二、簡單的程式易於維護;三、簡單的程式易於發現問題…… 寫簡單程式的理由實在太多了。能用10行實現的,就不要寫1
Time of Update: 2018-12-05
現在的所謂多媒體電腦一般都會有音效卡(軟音效卡或硬音效卡),有音效卡就能進行音訊捕捉。大家一定熟悉Windows內建的附件“錄音機”程式,可以通過麥克風進行錄音,最終產生一個Wave檔案。讀完本文之後,你就會發現,自己使用DirectShow寫一個音頻捕捉的應用程式,原來也是這麼的容易! 大家知道,DirectShow對硬體的支援是通過特定的封裝Filter來實現的。音效卡使用的是Audio Capture
Time of Update: 2018-12-05
SHBrowseForFolder是一個windows shell函數,可以以目錄為單位進行瀏覽,其函數原型為: LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFOlpbi); 參數lpbi是一個指向結構BROWSEINFO的指標,該結構的定義如下: typedef struct _browseinfo { HWND hwndOwner; LPCITEMIDLIST pidlRoot;
Time of Update: 2018-12-05
#define E_POINTER _HRESULT_TYPEDEF_(0x80004003L)#define E_INVALIDARG _HRESULT_TYPEDEF_(0x80000003L)#define E_NOTIMPL _HRESULT_TYPEDEF_(0x80004001L) 2147746321 #define
Time of Update: 2018-12-05
問題描述運行採集時,在c://test.avi裡找到了teat.avi ,可是用暴風影音開啟teat.avi 時顯示“標頭檔不完整,不是標準的視頻檔案”。解決原理及方法:filewriterfile 寫檔案結束之前,在檔案的開始處插入一個檔案格式頭,如AVI檔案頭。所以 上面提示的“標頭檔不完整,不是標準的視頻檔案”很可能是 由於沒有執行if (mGraph && mMediaControl){ if (mGraph){ ///////////////////////
Time of Update: 2018-12-05
編譯參考xvid原始碼中的doc/INSTALL檔案,針對其中遇到的問題: 下載NASMhttp://sourceforge.net/projects/nasm (Win32版本)解壓縮後得到nasmw.exe, ndisasmw.exe,將nasmw.exe改為nasm.exe後將這兩個檔案拷到Microsoft Visual Studio/VC98/Bin下。編譯有可能出現以下錯誤: error C2520: conversion from unsigned __int64 to
Time of Update: 2018-12-05
背景知識分析: 1. fd_set 結構體 fd_set是檔案控制代碼的集合。 FD_ZERO 清空這個集合; FD_SET 往這個集合裡面加入一個檔案控制代碼; FD_ISSET 查看某一個檔案控制代碼是否被設定了; 'fd_set') 是一組檔案描述符(fd)的集合。由於fd_set類型的長度在不同平台上不同,因此應該用一組標準的宏定義來處理此類變數: fd_set set;
Time of Update: 2018-12-05
在我看來,感染型病毒才是真正稱得上為病毒,因為感染型病毒的手動清除比較困難,大學的時候,幫同學殺毒最煩躁的就是碰上感染型的病毒,除非寫一個程式自動處理,不然手動清除是相當麻煩的.當然我所謂的真正病毒主要是在我看來,能夠輕易用手工清除的病毒都不是好的病毒.現在病毒製造者追求的是快速的傳播速度,而忽略了病毒的"頑固性",一個木馬簡單的就使用一個啟動的登錄機碼顯然在清理上太方便了,甚至可以進安全模式刪了登錄機碼,連病毒屍體都可以無視,這樣就已經不能發揮作用了.
Time of Update: 2018-12-05
更改rc的開啟檔案為Resource Editor(Default), 然後關閉VS2008進入工程目錄刪除ncb檔案,重新開啟項目,就正常了。問題:我刪除了工程中一張不用的*.bmp 然後我開啟編譯器 在切換到 resource view 時 *.rc時 由於rc 有改動 所以自動提示 : 重新載入 edit rc 什麼 我點擊 edit 按鈕 .rc檔案就以文本方式開啟 在resource view 的右邊顯示 我刪除圖片對應的 宏後 沒有 右擊關閉 rc檔案 其後 在單擊
Time of Update: 2018-12-05
Time of Update: 2018-12-05
在VC++程式設計過程中經常會遇到這樣的情況:執行程式的多個地方需要調用同一個對話方塊,但在不同的情況下希望給對話方塊加上不同的標題。開始我們可能會用下面的一段程式以達到這一目的:CTestDialog
Time of Update: 2018-12-05
1 想屏蔽最大化 一種方法是攔截 WM_SYSCOMMAND 中的 SC_MAXIMIZE 添加 WM_SYSCOMMAND 的訊息響應 範例程式碼: void CIVASDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else if
Time of Update: 2018-12-05
在從前寫的一篇blog中,我介紹了測配量序已耗用時間的方法,其中在講到基於Timer的測量方法時,介紹了一個Win32函數QueryPerformanceCounter(),其實使用這種這個函數比起嵌入彙編的方法還是方便很多,但是也容易引起一些問題。下面是一段範例程式碼.LARGE_INTEGER freq;LARGE_INTEGER startTime, endTime;LARGE_INTEGER elapsedTime,
Time of Update: 2018-12-05
什麼是變長參數?所謂含有變長參數的函數是指該函數可以接受可變數目的形參。例如我們都非常熟悉的printf,scanf等等。2:變長參數如何??首先來看下面這樣一個例子:#include<stdio.h>#include<stdarg.h>#include<string.h>void demo(char *msg,...){ va_list argp; int arg_number=0; char *para = msg; va_start(argp,msg);
Time of Update: 2018-12-05
在TCP串連中,recv等函數預設為阻塞模式(block),即直到有資料到來之前函數不會返回(socket預設是阻塞模式,如果串連正常,recv要等到接收到資料後才返回,如果對方沒有發資料過來,就會一直阻塞),而我們有時則需要一種逾時機制使其在一定時間後返回而不管是否有資料到來,這裡我們就會用到setsockopt()函數: int setsockopt(int s, int level, int optname, void* optval, socklen_t* optlen);
Time of Update: 2018-12-05
char * fliter="AVI(*.avi)/0*.avi/0mp3(.mP3)/0*.MP3/0MPEG(.MPEG)/0*.MPEG/0/0";//方法:/0作為分割,/0/0作為結尾 CFileDialog dlg(true,NULL,NULL,OFN_ALLOWMULTISELECT,NULL,NULL); CString strfilebuf; dlg.m_ofn.lpstrFile=strfilebuf.GetBuffer(2