Time of Update: 2018-12-04
把新程式打包放到你的伺服器上,外加一個配置說明檔案(ini或xml)。你的程式跑起來的時候,啟動一個慢線程,下載你的配置說明檔案(ini或xml),與本地的進行對照,如果一致就直接退出,如果有更新就接著下載到一個臨時目錄。這都是小意思了,重點是怎麼覆蓋原來的相應檔案,因為系統跑起來的時候,檔案是不能被刪除和覆蓋的。我的做法有四種一是如果只是某EXE或DLL有變化,那麼先把本地的改名,然後直接拷貝覆蓋就可以了(當然你得想辦法刪除改名後的檔案)。我現在做的瀏覽器是用這個方法的,不過還有改進的空間,現
Time of Update: 2018-12-04
第一種方法:a=a+b;b=a-b;a=a-b; 代碼如下: #include "stdio.h"int main(void){int a,b;printf("請輸入兩個變數a和b:/n");scanf("%d %d",&a,&b);printf("a和b交換前:/n");printf("a=%d b=%d/n",a,b);a=a+b;b=a-b;a=a-b;printf("a和b交換後:/n");printf("a=%d b=%d/n",a,b);system("pause")
Time of Update: 2018-12-04
關於Mat的初始建立方法有很多,下面列舉一些我喜歡使用的方法,以及使用過程中的一些注意事項。 使用Mat的一個基本常識是:它可區分為“資料頭+資料體”兩大部分,並且二者在記憶體中是可分離的,其產生過程也不需要並發/次序完成全部,因此,一個Mat變數的存在模式有:空頭、頭+體。另外,資料體部分可與其它Mat變數共用。對於共用的資料區塊,只有大家都不使用時才會得以銷毀和釋放。 膜拜OpenCV的大神們吧,竟能將Mat這一新秀設計得如此漂亮能幹! 呵呵
Time of Update: 2018-12-04
::FindAllDrivers(){ CComboBox* Driver=(CComboBox*)GetDlgItem(IDC_DRIVER); DWORD dwNumBytesForDriveStrings;//實際儲存磁碟機代號的字串長度 HANDLE hHeap; LPSTR lp; CString
Time of Update: 2018-12-04
vc環境下:很多時候程式的 Debug 版本運行沒有任何問題,但是一旦發布 Release 版本後,運行就出錯,著實讓人鬱悶。大家知道,VC++ 中 Release 版本是對無法對原始碼進行調試的。一般的做法是在懷疑有錯誤的代碼前後插入MessageBox 函數,在函數中顯示可能導致錯誤的變數的值。或者插入寫檔案的語句,輸出可能導致錯誤的變數的值到一個記錄檔案。其實,除了上面講的這個辦法之外,還有其它的途徑來調試 Release 版本的。下面就結合自己的經驗和網上尋找的一些資料給出調試
Time of Update: 2018-12-04
由於OpenCV沒有內建的映像細化函數,網上提供的基本是基於1.0介面的,於是乎動手搞成2.0 Mat類型介面的,方便好用。細化方法當中,當屬經典的Zhang並行快速細化演算法,細化之後的輪廓走勢與原圖保持得相對較好。參照 http://blog.csdn.net/byxdaz/article/details/5642669, 代碼改造結果如下, //將 DEPTH_8U型二值映像進行細化 經典的Zhang並行快速細化演算法void thin(const Mat &src, Mat &
Time of Update: 2018-12-04
MFC 鍵盤響應一:首先介紹鍵盤訊息系統訊息:ALT,F1,——F24等,是由系統內部處理的,程式本身就存在,比如F1是協助鍵。WM_SYSKEYDOWNWM_SYSKEYUPWM_SYSCHAR非系統訊息:是由我們自己加上去的,WM_KEYDOWNWM_KEYUPWM_CHAR二:然後介紹虛擬按鍵碼符號形式 十六進位形式 說明VK_LBUTTON 01 滑鼠左鍵VK_RBUTTON 02 滑鼠右鍵VK_CANCEL 03 Control-break 過程VK_MBUTTON 04
Time of Update: 2018-12-04
方法一:#include "stdio.h"#include "stdlib.h"//初始化最大值為a[0],次大值為a[1],遍曆一次,每次比較並更新最大值和次大值,最後就可以得到次大值。int findsecondmaxvalue(int *a,int size){ int i,max,s_max; max=a[0]; //最大值s_max=a[1]; //次大值 for(i=0;i<size;i++) { if(a[i]>max)
Time of Update: 2018-12-04
作者根據自己多年的Flash項目開發及管理經驗,吸取駝峰命名法與匈牙利命名法的長處,結合MVCS開發模式,融入物件導向的開發思想,並且考慮到業界已有的不成文的約定,兼顧Flash開發以及Flex開發的便利性,草擬了這份AS3編碼經驗。請各位大師多多指教。一,基本原則約定大於配置,約定大於規範規範思想,並非為束縛手腳在無歧義的前提下,命名力求簡潔在語義明了的前提下,命名力求省力,如果可以同時不按shift,則不按命名=表義詞語+類型,名稱表義為先堅持使用強型別把常用的成員,放在容易找到的地方,給予
Time of Update: 2018-12-04
問題:有一個大小為n的數組A[0,1,2,…,n-1],求其中第k大的數。該問題是一個經典的問題,在《演算法導論》中被作為單獨的一節提出,而且其解決方案很好的利用了分治的思想,將時間複雜度控制在了O(n),這多少出乎我們的意料,此處暫且不表。該問題還可以變形為:有一個大小為 n的數組A[0,1,2,…,n-1],求其中前k大的數。一字之差,原問題是“第k大”,變形的問題是“前k大”,但是平均時間複雜度卻都可以控制在O(n),這不由得讓人暗暗稱奇。 我們先分析原問題:有一個大小為 n的數組A[0,
Time of Update: 2018-12-04
方法(一):關於大數乘法,可以使用數組來類比小學三年級的乘法豎式計算過程,代碼如下:#include "iostream"#include "string"using namespace std;int main(void){char str1[1000],str2[1000];int i,j,len1,len2,len;bool flag=false;cout<<"任意兩個大數的乘法(用數組來類比小學三年級的乘法豎式計算過程):"<<endl;cout<<"
Time of Update: 2018-12-04
相信用Flash Builder/Flex Builder做開發的大部分開發人員都遇到過這樣的問題,編譯的swf在bin-debug中開啟(不是在IDE環境中調試,而是直接雙擊用Flash Player開啟),一切正常;而將其複製到其他檔案夾,就會彈出安全錯誤。這是由於Flash Player對本地回放安全性的限制。詳情可看官方文檔中的“許可權控制”部分。不想看官方文檔的,繼續往下看。解決這問題的方法主要是以下兩種:一、使用本地信任檔案在Windows
Time of Update: 2018-12-04
今天,編譯器的時候,意外遇到了一個錯誤,就是VS2008一直提示:fatal error LNK1104: 無法開啟檔案“libc.lib”,後來在網上尋找了很多資料,終於知道原因了。。。 如果將用低版本的VC開發的項目,拿到高版本的VC開發環境上去編譯,連結時也許會觸發LNK1104錯誤。解決方案是連結時忽略此庫,在此提供兩種解決方案: Project | Properties | Configuration Properties | Linker |
Time of Update: 2018-12-04
聽說,將RGB映像歸一化之後,可以消除部分光照影響,於是在沒有找著現成的之後試著寫了個,發現它並不能解決我的問題, 處理之後的視覺效果比較差還,像素之間顯得那麼不和諧。 現將源碼公布,請大家多多指導。 // 將BGR顏色歸一化,消除線性光照影響bool colorNormal(Mat& img){if (img.channels() != 3){return false;}int nl= img.rows; // number of lines int nc=
Time of Update: 2018-12-04
[zz] A*尋路演算法英文原版: http://www.gamedev.net/reference/articles/article2003.asp中文翻譯版: http://www.cppblog.com/christanxw/archive/2006/04/07/5126.html中文翻譯版轉載如下(非常感謝原作者以及翻譯作者):概述雖然掌握了 A* 演算法的人認為它容易,但是對於初學者來說, A* 演算法還是很複雜的。搜尋地區(The Search
Time of Update: 2018-12-04
題目:求1~n的整數中1的個數。常規做法是,先寫一個右移判1的子函數,計算每個數裡面的1的個數,然後遍曆1~n,取和,就是答案。在百度文庫(http://wenku.baidu.com/view/6722a969af1ffc4ffe47ac18.html)中看到有這樣一個解法://計算整數 1~n 中的1的個數總和ULONGLONG Sum1s(ULONGLONG n) { ULONGLONG iCount = 0; ULONGLONG iFactor = 1;
Time of Update: 2018-12-04
設計一個演算法,把一個含有N個元素的數組迴圈右移K位,要求:時間複雜度為O(N),且只允許使用兩個附加變數。最直接的想法是“一步到位”,盡量避免資料移動或者交換,於是有像下面的這樣的代碼:template<typename T>void shiftArrRightCir(T* arr, const int N, int k){ k %=N; const int divN =N/k; for (int i = 0; i < k; i++) {
Time of Update: 2018-12-04
最大子序列和的問題,網上討論得比較多,較為推崇的複雜度為O(n)的演算法:int maxSubSum(int* a, int n, int *seqStart=0, int *seqEnd=0){ int maxSum = 0; int thisSum = 0; for( int i = 0, j = 0; j < n; j++ ) { thisSum += a[ j ]; if( thisSum > maxSum )
Time of Update: 2018-12-04
註:本人的這個問題並沒有解決,不過應該可以解決一些問題。LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use
Time of Update: 2018-12-04
用VC2005編譯的程式,編譯時間沒有任何錯誤,但是運行時就是提示“應用程式正常初始化失敗”!! 尋找了各方面資料,做了各種嘗試,網上說什麼的都有:有讓安裝vc2005 sp1補丁的;有讓安裝vcredist_x86.exe的; 有讓把CRT庫的dll直接拷貝到程式目錄的;