Time of Update: 2018-12-03
使用Inno Setup製作安裝包小技巧:1.去掉歡迎介面在[code]段中添加如下代碼:function ShouldSkipPage(PageID: Integer): Boolean;beginif PageID=wpWelcome then result :=
Time of Update: 2018-12-03
目的:利用Direct3D實現圖片A半透明渲染到圖片B上面。步驟:1.建立標準WIN32程式,添加需要用到的對象定義和函式宣告:CComPtr<IDirect3D9> pD3d9;CComPtr<IDirect3DDevice9> pD3dDevice9;CComPtr<IDirect3DTexture9> pTexture1;CComPtr<IDirect3DTexture9> pTexture2;D3DPRESENT_PARAMETERS
Time of Update: 2018-12-03
我一般這樣做: for(int i=0;i<LENGTH;i++) { strtmp.Format("%02x ",buf4thread[i]); str1 += strtmp; if(( (i+1)%1024 )==0) { str1+="/r/n";
Time of Update: 2018-12-03
一直在想,如何高效的重複使用代碼,做介面的時候,也常想如何讓一個對話方塊類複用。由於對話方塊類比較特殊,一般都是針對特定的需求制定,有幾個編輯框,幾個組合框,幾個按鈕,有沒有複選框等等,各不相同,要複用對話方塊是比較難的。偶爾也有一些視窗可以複用,例如一個對話方塊用來接收一條記錄的輸入,當有多個地方需要添加這樣的記錄的時候,就可以複用這個對話方塊。 但是,一定不要在子視窗中去更新父視窗的控制項狀態,比如父視窗有一個清單控制項顯示一個資料庫中的記錄,當添加記錄的對話方塊像資料庫中插入記錄成功以後
Time of Update: 2018-12-03
============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu著作權沒有,但是轉載請保留此段聲明============================================客戶反映,gettimeofday擷取的時間us部分總是零。自己修改測試代碼有如下結果:./lpc3250test 1 0 50000divsor is 1 sec is 0 usec is 50000 **
Time of Update: 2018-12-03
============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu著作權沒有,但是轉載請保留此段聲明============================================之前只知道核心往使用者空間發送訊號可以用“非同步通知”。昨天接觸到一個新的函數,查了一下ULK3(page431),發現核心中有一族函數專門為進程產生訊號的。 由於自己之前沒用過,最近又在看別的東西,先羅列在這
Time of Update: 2018-12-03
VC工程中有個*.rc檔案,放的是圖片、字串等資源,該檔案可以用記事本開啟,我們可以理解它就是一個文字檔。放在RC中的資源會被編譯到軟體的可執行程式中,作為不可修改的一部分。在這中情況下,如果要切換語言(針對字串資源),更換介面風格(圖片資源)等等,就必須對工程的RC檔案重新編輯,並大量調整程式,然後重新發布軟體,不言而喻,這樣很不好。後來,設計人員就想到了一種方式,把這些資源放在動態庫中,切換語言只要切換動態庫,切換介面風格也只需要切換動態庫,這樣程式就不需要做太大的修改,甚至可能只需要改程式
Time of Update: 2018-12-03
BOOL CloseProcess(CString strProcessName){HANDLE Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);PROCESSENTRY32 pe32;pe32.dwSize = sizeof( PROCESSENTRY32 );BOOL bWork = Process32First(Snapshot, &pe32);while (bWork){CString strFile =
Time of Update: 2018-12-03
void GetCurrentProcessName(char* szProcessName,int* nLen){DWORD dwProcessID = GetCurrentProcessId();HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,dwProcessID);if(hProcess){HMODULE hMod;DWORD
Time of Update: 2018-12-03
1.上電時序,直接省略2.waitclock往I2c匯流排上發送兩個位元組的0x00,具體方法為想地址0寫一個位元組的0x0.3.命令和資料遇到"0xb8 00 00 0x0a"命令直接返回。AT88的規則是每次讀寫資料之前先發送命令。因此讀寫資料的時候一定是帶命令的。寫資料的操作很簡單,使用命令的第一個位元組作為地址,剩下的命令部分和資料部分當成一般資料發送。讀操作稍微複雜一點。AT88的時序不是標準I2C,但是大致相容。I2C沒辦法實現AT88手冊中說的normal
Time of Update: 2018-12-03
區域網路音頻對講涉及到音頻採集、音頻播放、網路傳輸等技術,需要使用到多執行緒的方式。首先,網路中會傳輸兩種類型的資料,一種是命令資料(信令),一種是音頻資料。其次,對講的任何一端都需要接收音頻資料,播放音頻同時採集音頻,發送音頻資料。第三,使用TCP方式,不必進行丟包處理和排序處理。第四,將發起對講請求一端稱為用戶端,把接收請求一端稱為伺服器。 伺服器端開啟一個偵聽線程,等待用戶端串連。當偵聽線程中的accept返回有效通訊端(表示有用戶端與伺服器成功串連),針對該通訊端開啟一個接收資料線程re
Time of Update: 2018-12-03
#include <ShlObj.h>#include <Psapi.h>std::string SW2A(std::wstring& strW){std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";setlocale(LC_ALL, "chs"); const wchar_t* _Source = strW.c_str();size_t _Dsize = 2 *
Time of Update: 2018-12-03
建立了一個空的工程,不停的添加新項,添加新類,數量越來越多,發現,每次修改一處,都會把所有的重新編譯,速度實在太慢,原來是沒有使用先行編譯頭。我把別的工程的stdafx.h和stdafx.cpp拷過來,工程屬性改為"使用先行編譯頭(/Yu)",編譯報錯,改為“建立先行編譯頭(/Yc)”,還是報錯。百思不得其解,只好建立一個hellow
Time of Update: 2018-12-03
目前,我所掌握的VC程式訪問資料庫有兩種方法,一種是用ODBC,一種是ADO。ODBC訪問資料庫主要是通過MFC中的兩個類,一個是CDatabase,一個是CRecordSet。這種訪問方式需要設定資料來源,我始終覺得不靈活,所以我比較喜歡使用ADO。ADO有三個智能指標:_ConnectionPtr,_CommandPtr,_RecordsetPtr。在使用ADO之前,必須載入ADO,載入的方法是,在StdAfx.h檔案中加入:#import "c:/program files/common
Time of Update: 2018-12-03
背景:我們以VS2005作為環境,安裝目錄是C:/Program Files/Microsoft Visual Studio 8 ,我們稱C:/Program Files/Microsoft Visual Studio 8/VC/ 目錄為VC目錄,稱C:/Program Files/Microsoft Visual Studio 8/VC/crt 目錄為運行時目錄,在這個目錄下面有C執行階段程式庫的源碼C:/Program Files/Microsoft Visual Studio
Time of Update: 2018-12-03
在多行模式下的CEdit類提供void CEdit::SetRectNP( LPCRECT lpRect)函數,此函數用來調整文本編輯的地區,用這個函數可以設定上下左右Margins,而void SetMargins( UINT nLeft, UINT nRight)函數只能設定左右Margins。 CRect rc =
Time of Update: 2018-12-03
長方形定義為rect(min,max) min和max是二維點(x,y)組成 兩個長方形a(mina,maxa)和b(minb,maxb)的交集c(minc, maxc)滿足 minc.x = max(mina.x, minb.x) minc.y = max(mina.y, minb.y) maxc.x = min(maxa.x, maxb.x) maxc.y = min(maxa.y, maxb.y) 如果minc.x <maxc.x
Time of Update: 2018-12-03
工作中因為需要用到這樣的函數,想偷懶,在網上找,沒有找到,便自己寫了一個.//lpSrc----[in,out]dest string,after replacing string,it will contain result string//lpOldStr----string which will be replaced//lpNewStr---- new string for replacingvoid ReplaceString(LPTSTR& lpSrc, LPTSTR
Time of Update: 2018-12-03
修改: mw [記憶體位址] [值] [長度]例如:mw 0x02000000 0 128表示修改地址為0x02000000~0x02000000+128的記憶體值為0. //-----------------------------------------------------------------------顯示: md [記憶體位址] [長度]例如:md 0x02000000
Time of Update: 2018-12-03
借鑒http://blog.csdn.net/dreamd1987/article/details/7259479IplImage* yImg = cvCreateImageHeader(cvSize(width, height),IPL_DEPTH_8U,1);IplImage* uImg = cvCreateImageHeader(cvSize(width/2, height/2),IPL_DEPTH_8U,1); IplImage* vImg = cvCreateImageHeader(