re: socket悲劇[未登錄] VK 2011-08-05 14:10
這東西是怎么出來的?
同端口 bind->listen->connect自己?
同端口 bind->listen->connect自己?
re: 【簡單的字符串模版匹配】[未登錄] VK 2011-08-05 14:04
//和文件名匹配相似,只支持*和?,無遞歸
#define FIX_SIZE 1024
bool _match_fix_size(const wchar_t* src, int srcLen, const wchar_t* rule, int ruleLen)
{
// 聲明掃描線并確定新長度
bool old_scan[FIX_SIZE + 1];
bool new_scan[FIX_SIZE + 1];
const int rule_max = ruleLen + 1;
const int src_max = srcLen + 1;
//長度不能超過FIX_SIZE
if (rule_max >= FIX_SIZE || src_max >= FIX_SIZE)
return false;
// 復制平移一個位置
wchar_t src_copy[FIX_SIZE + 1];
wchar_t rule_copy[FIX_SIZE + 1];
memcpy(&src_copy[1], src, (srcLen + 1) * sizeof(wchar_t));
memcpy(&rule_copy[1], rule, (ruleLen + 1) * sizeof(wchar_t));
//初始化掃描線
for(int i = 0; i < src_max + 1; ++i)
{
new_scan[i] = false;
old_scan[i] = false;
}
// 初始化啟動標記(new_scan無啟動標記)
src_copy[0] = 0;
rule_copy[0] = 0;
old_scan[0] = true; // old_scan 以true開始
//1才是開始
for(int i = 1; i < rule_max + 1; ++i)
{
for(int j = 1; j < src_max + 1; ++j)
{
new_scan[j] = false;
if(rule_copy[i - 1] == src_copy[j - 1] && old_scan[j - 1])
new_scan[j] = true;
if(rule_copy[i - 1] == L'?' && old_scan[j - 1])
new_scan[j] = true;
if(rule_copy[i - 1] == L'*')
{
if(new_scan[j - 1])
new_scan[j] = true;
if(old_scan[j])
new_scan[j] = true;
}
}
for(int j = 0; j < src_max + 1; ++j)
old_scan[j] = new_scan[j];
}
return new_scan[src_max];
}
#define FIX_SIZE 1024
bool _match_fix_size(const wchar_t* src, int srcLen, const wchar_t* rule, int ruleLen)
{
// 聲明掃描線并確定新長度
bool old_scan[FIX_SIZE + 1];
bool new_scan[FIX_SIZE + 1];
const int rule_max = ruleLen + 1;
const int src_max = srcLen + 1;
//長度不能超過FIX_SIZE
if (rule_max >= FIX_SIZE || src_max >= FIX_SIZE)
return false;
// 復制平移一個位置
wchar_t src_copy[FIX_SIZE + 1];
wchar_t rule_copy[FIX_SIZE + 1];
memcpy(&src_copy[1], src, (srcLen + 1) * sizeof(wchar_t));
memcpy(&rule_copy[1], rule, (ruleLen + 1) * sizeof(wchar_t));
//初始化掃描線
for(int i = 0; i < src_max + 1; ++i)
{
new_scan[i] = false;
old_scan[i] = false;
}
// 初始化啟動標記(new_scan無啟動標記)
src_copy[0] = 0;
rule_copy[0] = 0;
old_scan[0] = true; // old_scan 以true開始
//1才是開始
for(int i = 1; i < rule_max + 1; ++i)
{
for(int j = 1; j < src_max + 1; ++j)
{
new_scan[j] = false;
if(rule_copy[i - 1] == src_copy[j - 1] && old_scan[j - 1])
new_scan[j] = true;
if(rule_copy[i - 1] == L'?' && old_scan[j - 1])
new_scan[j] = true;
if(rule_copy[i - 1] == L'*')
{
if(new_scan[j - 1])
new_scan[j] = true;
if(old_scan[j])
new_scan[j] = true;
}
}
for(int j = 0; j < src_max + 1; ++j)
old_scan[j] = new_scan[j];
}
return new_scan[src_max];
}
re: 磚塊地圖自動拼接數據分析和調色板自動生成。[未登錄] VK 2010-11-17 02:39
很感謝,我改了個斜45度的。
re: CListCtrl和對話框的消息傳遞問題 vk 2010-04-12 23:09
@陳梓瀚(vczh)
例如,在我做的例子里,我想雙擊列表中的一項的時候,那一項顏色發生變化,另外,在對話框里有個CEdit控件,用來顯示被雙擊的那一行的內容
例如,在我做的例子里,我想雙擊列表中的一項的時候,那一項顏色發生變化,另外,在對話框里有個CEdit控件,用來顯示被雙擊的那一行的內容
re: CListCtrl和對話框的消息傳遞問題 vk 2010-04-12 20:57
@陳梓瀚(vczh)
這個……其實vs自動產生的代碼,按鈕單擊消息是窗口來接收并處理的
與此同時,按鈕自身也要做一些動作,比如,更換按鈕的樣式,讓人感覺按鈕被按下了
我看到你寫了一個自己的代碼庫,所以如果可以的話,給我點意見,我也不想在2個地方處理一個消息
這個……其實vs自動產生的代碼,按鈕單擊消息是窗口來接收并處理的
與此同時,按鈕自身也要做一些動作,比如,更換按鈕的樣式,讓人感覺按鈕被按下了
我看到你寫了一個自己的代碼庫,所以如果可以的話,給我點意見,我也不想在2個地方處理一個消息
re: 在c++頭文件里定義數組的方法。 vk 2010-04-08 12:38
@foxriver
不會的,因為編譯通不過的
不會的,因為編譯通不過的