bool isLittleEndian(){
const WORD endian = 0x1234;
return *((BYTE*)&endian) == 0x34;
}
2010年3月25日 星期四
Check Endianness
カテゴリー:
C++
2010年3月24日 星期三
GetParent in a dialog box
http://support.microsoft.com/?scid=kb%3Ben-us%3B118610
原來在丟 parent 給 top-level window 或 popup window 後,它們會再更進一步去取得 parent,直接取得 top-level window 為止
難怪我這樣的架構下,CDialog2 取得的 parent 不是 CWnd,而是 CDialog
CDialog
-> CWnd
-> CDialog2
原來在丟 parent 給 top-level window 或 popup window 後,它們會再更進一步去取得 parent,直接取得 top-level window 為止
難怪我這樣的架構下,CDialog2 取得的 parent 不是 CWnd,而是 CDialog
CDialog
-> CWnd
-> CDialog2
カテゴリー:
C++
2010年3月19日 星期五
列出「我最近的文件」清單
我最近的文件:雞肋又容易侵犯隱私的功能,不論開過什麼見不得人的東東,該檔案的捷徑都會被收錄在這個地方。去觀察男性使用者的這個目錄可以對他的性癖有初步認識。
預設路徑
XP:「開始」功能表右鍵->[內容]->[「開始」功能表]->[自訂]->[進階]->[最近的文件]
列出最近開啟的文件:取消勾選後,「最近的文件」項目將不會出現在「開始」功能表內
清除清單:清掉「最近的文件」中的記錄
開啟 regeidt 至
[HKEY_CURRENT_USER]→[Software]→[Microsoft]→[Windows]→[CurrentVersion]→[Policies]→[Explorer]
新增名為 NoRecentDocsMenu 的 DWORD,值為 1:隱藏上述「最近的文件」的設定區塊
新增名為 NoRecentDocsHistory 的 DWORD,值為 1:開啟過的檔案捷徑將不再收錄至「最近的文件」內
印出「最近的文件」內容
Output as text file in UTF-16LE: RecentList.txt
must define _UNICODE
預設路徑
C:\Documents and Settings\<User Name>\Recent
XP:「開始」功能表右鍵->[內容]->[「開始」功能表]->[自訂]->[進階]->[最近的文件]
列出最近開啟的文件:取消勾選後,「最近的文件」項目將不會出現在「開始」功能表內
清除清單:清掉「最近的文件」中的記錄
開啟 regeidt 至
[HKEY_CURRENT_USER]→[Software]→[Microsoft]→[Windows]→[CurrentVersion]→[Policies]→[Explorer]
新增名為 NoRecentDocsMenu 的 DWORD,值為 1:隱藏上述「最近的文件」的設定區塊
新增名為 NoRecentDocsHistory 的 DWORD,值為 1:開啟過的檔案捷徑將不再收錄至「最近的文件」內
印出「最近的文件」內容
#include <windows.h>
#include <shlobj.h>
#pragma comment ( lib, "shell32.lib" )
int _tmain( int argc, _TCHAR* argv[] ){
TCHAR path[MAX_PATH+1];
WIN32_FIND_DATA findData;
HANDLE hFind;
if( SHGetSpecialFolderPath( NULL, path, CSIDL_RECENT, FALSE ) ){
_tprintf_s( _T("%s\n"), path );
_tcscat_s( path, _T("\\*.*") );
hFind = FindFirstFile( path, &findData );
path[_tcslen( path )-3] = 0;
do{
_tprintf_s( _T("%s%s\n"), path, findData.cFileName );
} while ( FindNextFile( hFind, &findData ) );
if( hFind != INVALID_HANDLE_VALUE ){
FindClose( hFind );
}
}
system( "pause" );
return 0;
}
Output as text file in UTF-16LE: RecentList.txt
must define _UNICODE
#include <windows.h>
#include <shlobj.h>
#pragma comment ( lib, "shell32.lib" )
int _tmain( int argc, _TCHAR* argv[] ){
FILE* pFile = NULL;
_tfopen_s( &pFile, _T("RecentList.txt"), _T("wb") );
if( !pFile ){
_tprintf_s( _T("Cannot open file" ) );
system( "pause" );
return 0;
}
WORD BOM = 0xFEFF;
fwrite( &BOM, sizeof( WORD ), 1, pFile );
TCHAR path[MAX_PATH+1];
WIN32_FIND_DATA findData;
HANDLE hFind;
if( SHGetSpecialFolderPath( NULL, path, CSIDL_RECENT, FALSE ) ){
_ftprintf_s( pFile, _T("%s\n"), path );
_tcscat_s( path, _T("\\*.*") );
hFind = FindFirstFile( path, &findData );
path[_tcslen( path )-3] = 0;
do{
_ftprintf_s( pFile, _T("%s%s\n"), path, findData.cFileName );
} while ( FindNextFile( hFind, &findData ) );
if( hFind != INVALID_HANDLE_VALUE ){
FindClose( hFind );
}
}
fclose( pFile );
return 0;
}
2010年3月13日 星期六
陰險的家樂福……
家樂福老是出現結帳價與架上標示價不同的情況
今天買了 A 商品,架上標 69 元,回家看發票卻是 79 元
結帳的時候忙著裝商品入購物袋,沒空盯著收銀台一項一項監視商品價格
難道真得要求消費者一一背下各種商品的標示價,並在結帳完時立刻詳細比對才行嗎?
用這種手段來陰沒有比對價格的消費者的錢,有夠賤的!
今天俺是有比對價格沒錯,不過整個意識都被吸引到另一項錯誤上了
俺另外有買 X 商品,標示 95 元買一送一,俺買了兩組,也就是四個
結帳時,發票上對於該商品的價格顯示為
X 商品 95
X 商品 95
買一送一 -95
x 商品 69
X 商品 95
總價應該為 190 元的 X 商品,被算成了 259 元
去服務台詢問後,原因是那一個 x 商品在結帳時刷錯了條碼
x 是原本的條碼,因為特價活動所以另外準備了 X 碼條,貼在 x 上
不過那一個貼歪了,在刷時去刷到了下面的 x 條碼
所以買一送一的折價沒了,反而多了一個原價 x 上去
最後是取消了錯誤的部分,重新結帳,算解決了
沒想到回家後記帳才發現除了 X 商品之外,A 商品也標價不實!
話說 x 商品原價 69 元,在特價活動時反而漲了五成,變 99 元
單買或是刷錯價的反而買貴
真的處處是陷阱,有夠陰險的(=△=. )
以前還有踩到地雷的經驗:
家樂福的特價花車,標價牌上寫著 49 元,車上放了多個品牌的平口褲
理所當然會認為該車上所有平口褲都是 49 元,就隨便挑了四件結帳
回記帳時才發現竟然每件都是 79 元
兩天後又去買東西時,再仔細看一看該特價花車
標價牌上寫的是 XXX 牌平口褲 49 元,XXX 是沒見過的外國英文品牌,一般人根本不會去分辨,並且字體大小約只有價格的四分之一
然後俺拿的是別牌的,一樣是外國英文品牌,跟特價品的品牌不同
不同價格的同性質商品竟然放在同一個特價花車上,像俺這樣沒仔細確認的人就踩到地雷了
今天買了 A 商品,架上標 69 元,回家看發票卻是 79 元
結帳的時候忙著裝商品入購物袋,沒空盯著收銀台一項一項監視商品價格
難道真得要求消費者一一背下各種商品的標示價,並在結帳完時立刻詳細比對才行嗎?
用這種手段來陰沒有比對價格的消費者的錢,有夠賤的!
今天俺是有比對價格沒錯,不過整個意識都被吸引到另一項錯誤上了
俺另外有買 X 商品,標示 95 元買一送一,俺買了兩組,也就是四個
結帳時,發票上對於該商品的價格顯示為
X 商品 95
X 商品 95
買一送一 -95
x 商品 69
X 商品 95
總價應該為 190 元的 X 商品,被算成了 259 元
去服務台詢問後,原因是那一個 x 商品在結帳時刷錯了條碼
x 是原本的條碼,因為特價活動所以另外準備了 X 碼條,貼在 x 上
不過那一個貼歪了,在刷時去刷到了下面的 x 條碼
所以買一送一的折價沒了,反而多了一個原價 x 上去
最後是取消了錯誤的部分,重新結帳,算解決了
沒想到回家後記帳才發現除了 X 商品之外,A 商品也標價不實!
話說 x 商品原價 69 元,在特價活動時反而漲了五成,變 99 元
單買或是刷錯價的反而買貴
真的處處是陷阱,有夠陰險的(=△=. )
以前還有踩到地雷的經驗:
家樂福的特價花車,標價牌上寫著 49 元,車上放了多個品牌的平口褲
理所當然會認為該車上所有平口褲都是 49 元,就隨便挑了四件結帳
回記帳時才發現竟然每件都是 79 元
兩天後又去買東西時,再仔細看一看該特價花車
標價牌上寫的是 XXX 牌平口褲 49 元,XXX 是沒見過的外國英文品牌,一般人根本不會去分辨,並且字體大小約只有價格的四分之一
然後俺拿的是別牌的,一樣是外國英文品牌,跟特價品的品牌不同
不同價格的同性質商品竟然放在同一個特價花車上,像俺這樣沒仔細確認的人就踩到地雷了
カテゴリー:
お駄弁り
2010年3月3日 星期三
C2143 in yvals.h
剛剛製作 demo 時,出現
其下也跟著一堆
詳細檢查結果,是定義某個結構時少了個分號……
特此記錄,以便日後再犯時參考~(= =)~
~yvals.h(513) : error C2143: syntax error : missing ';' before 'namespace'這樣莫名其妙的錯誤訊息
其下也跟著一堆
error C2061: syntax error : identifier 'DWORD'等不可能會出現的錯誤
詳細檢查結果,是定義某個結構時少了個分號……
特此記錄,以便日後再犯時參考~(= =)~
カテゴリー:
C++
Auto-Activation for eclipse
[Window]->[Preferences]->[Java]->[Editor]->[Content Assist]->[Auto-Activation]
カテゴリー:
Java
2010年3月2日 星期二
以前寫的找質數函數
以前寫的找質數函數
真懷念那為了這樣幾行小程式而絞盡腦汁的日子(遠目)
以 6n+1 6n-1 法檢驗 n 是否為質數
以 Eratosthenes 篩法找出 n 以下的質數
真懷念那為了這樣幾行小程式而絞盡腦汁的日子(遠目)
以 6n+1 6n-1 法檢驗 n 是否為質數
bool isPrime( const DWORD n ){
if( n < 2 )
return FALSE;
if( n == 2 || n == 3 )
return TRUE;
if( !(n%2) || !(n%3) )
return FALSE;
DWORD limit = (DWORD)sqrt( (double)n );
for( DWORD i=5, gap=2; i<=limit; i+=gap, gap=6-gap ){
if( !(n%i) ){
return FALSE;
}
}
return TRUE;
}
以 Eratosthenes 篩法找出 n 以下的質數
bool* eratosthenes( const DWORD n ){
bool* pPrime = new bool[n+1];
pPrime[0] = pPrime[1] = FALSE;
for( DWORD i=2; i<=n; ++i ){
pPrime[i] = TRUE;
}
DWORD limit = (DWORD)sqrt( (double)n );
for( DWORD i=2; i<limit; ++i ){
if( pPrime[i] ){
for( DWORD j=i*i; j<=n; j+=i ){
pPrime[j] = FALSE;
}
}
}
return pPrime;
}
カテゴリー:
C++
訂閱:
文章 (Atom)