/********************************************************************
created: 2008/04/24
created: 24:4:2008 12:47
author: Gohan
http://feed.feedsky.com/gohan
purpose: 演示SHBrowseForFolder用法
*********************************************************************/
#include <Windows.h>
#include <ShlObj.h>
int main()
{
BROWSEINFO bi;
ZeroMemory(&bi,sizeof(BROWSEINFO));
LPMALLOC pMalloc;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
TCHAR * path = new TCHAR[MAX_PATH];
if(pidl != NULL)
{
SHGetPathFromIDList(pidl,path);
MessageBox(NULL,path,TEXT("Choose"),MB_OK);
if(SUCCEEDED(SHGetMalloc(&pMalloc)))//pidl指向的對象用完應該釋放,之前忽略了
{
pMalloc->Free(pidl);
pMalloc->Release();
}
}
else
{
MessageBox(NULL,TEXT("選擇為空"),TEXT("Choose"),MB_OK);
}
delete path;//謝謝true的提醒,以后我一定會更加慎重
}
這周看了點書,寫了一些代碼,MFC的mergesortDemo,C#與regex相關的應用。今天凌晨發現一個類似Mop的貓游記的WebMUD叫刀劍江湖,花了幾個小時玩了一下,用.net2.0做的,我也很想做類似的mud服務端,可是學的東西太少,只是簡單的翻看過MUD Game Programming,感覺做一個龐大的系統很麻煩,不過有機會我會去慢慢嘗試。同學中有些人喜歡玩WebGame,類似travian這樣的游戲,現在好像xiaonei也推出了一款,我打算研究一下C#的webbrowser控件等的應用,以及HTTP抓包來了解下這類游戲的運作,那個刀劍江湖的游戲在執行命令時對于一個Send.aspx會傳一個特定算法生成的0-1的實型參數,每次都不同,所以像MUD中的機器人就很難做了。CodeProject: The most complete C# Webbrowser wrapper control.這篇文章講了一個功能強大的包裝了C# webbrowser的控件,我只是隨便看看,好像許多內部功能使用的是ATL搞得,這個項目的地址點這里。本周很亂有點忙,法國很多人民不了解我們,只能覺得很遺憾,如果中國更強點,他們估計想不了解都難了。我愛中國的地大物博,人才濟濟。你身邊的愛國主義 [棗報特評],好好學習,好好工作。
本周收藏:
本周就是這樣,匆忙回顧。
Win32命令行應用程序是可以加顏色的,使用SetConsoleTextAttribute就可以實現了,記得前年小學期做的程序作業就用了它。
這篇文章很簡單,你可以當作是一個cout <<運算符重載的一個簡單例子。本文章來源與這里,我只是做一個很不專業解釋。
本文章提供的庫可以如下使用,上面是顯示效果,想起小時候玩的Mud了吧。
#include "ConsoleColor.h"
std::cout << green << "This text is written in green" << white << std::endl;
std::cout << color(FOREGROUND_RED|FOREGROUND_GREEN) << "This text has a really exiting color !"
<< white << std::endl;
ConsoleColor.h的內容
#pragma once
#include <iostream>
#include <windows.h>
inline std::ostream& blue(std::ostream &s)
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE
|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& red(std::ostream &s)
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout,
FOREGROUND_RED|FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& green(std::ostream &s)
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout,
FOREGROUND_GREEN|FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& yellow(std::ostream &s)
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout,
FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& white(std::ostream &s)
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout,
FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
return s;
}//以上這些函數定義本身就是cout的<<操作符的一種參數重載形式,即:
//basic_ostream& operator<<( basic_ostream& (*_Pfn)(basic_ostream&) );
struct color {
color(WORD attribute):m_color(attribute){};
WORD m_color;
};
template <class _Elem, class _Traits>
std::basic_ostream<_Elem,_Traits>&
operator<<(std::basic_ostream<_Elem,_Traits>& i, color& c)
{
HANDLE hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout,c.m_color);
return i;
}
最后這個是對于<<操作符的重載,形式類似于如下
template<class _Tr>
basic_ostream<char, _Tr>& operator<<(
basic_ostream<char, _Tr>& _Ostr,
const unsigned char *_Str);
OK,發揮你的想象力,讓c++變得更有趣吧。
參考鏈接:
關于GPCT的程序做了個大概,并于昨天提交,能夠解決1-5級的難度,第6級更麻煩一些,第7級就超出我的能力范圍了。這周幾個老師出差上的課程就少了幾節,微機原理與接口技術只有一部分側重8086 assembly,還在慢慢看羅云彬的Win32匯編,另外Effective C#看了一半,李建忠翻譯的非常認真。于是之后的計劃也就草草定下,用win32匯編改寫幾個簡單的SDK程序,C#的正則表達式匹配以及IFormatable接口的方法重載,用MFC或SDK寫幾個算法演示工具之類,有空應該就會完成這些計劃,并在這里附上心得。
這周幾乎沒完游戲,只是“本學期再不打dota”的這個打算以失敗告終,還是太容易原諒自己。最近的放松方式,是看鳥山明的漫畫,以及閱微堂博主推薦的小說《新宋》。同學推薦了一部平淡而溫情的電影我們倆,不錯。
本周收藏:
本周就是這些,之后我會陸續寫一些技術小心得,也許會有點兒用,呵呵。
這周玩的挺好,工作做的也不錯。這周終于裝上了Portal,裝下來有6G,19關一共花了幾個小時玩完,真是一個不錯的游戲,可惜意猶未盡,于是發現了Portal Maps這個地方,可以下載許多好玩地圖。關于那個參加gpct比賽的程序我用4叉樹記錄加上枚舉解決了只有傳送難度的問題,對于機關的想法下周再去實施,周末做的這項工作,搞到凌晨4、5點,感覺晚上狀態很好。周二有幸去了兵馬俑,挺震撼的,比那個馬王堆漢墓還強一些,古人的有些聰明才智真的值得我們感到自豪,不過可惜的是很多古人留下的東西沒能繼續傳承。這周動漫看了很多,看完School Days,重看了一回天書奇譚,還在看妄想代理人。
令人高興的是維基百科終于可以訪問了,速度還不錯。
Google Talk推出實驗版本,暫時適用了一下,登陸沒有過去的快了,功能倒有點進步,界面跟在線版一樣。
聲明:北京維權人士胡佳因言入罪被判刑三年半,等待壹報的詳細報道。
本周收藏
這周就先到這里了。
本周在學習方面幾乎沒任何進步,重新讀了windows核心編程的Dll部分,作者很強,他寫的這本CLR via C#也在我的讀書堆棧中,這周玩的時間占得有點兒多。上微機原理接口技術學習8086匯編基礎,對于匯編產生了一點小小興趣,于是周五去市區看完10000bc后,花了快70多元買了羅云彬的win32匯編程序設計,目前就看了幾十頁,覺得看這個會對SDK學習帶來不少補充,慢慢翻吧。
這周主要玩了好幾個小游戲,Portal flash,還玩了一個叫Chalk的游戲,玩過去兩遍,每關都得B,沒得過A,真遺憾。異塵行者這周也發了個關于小游戲的博文:四個鍛鍊反應與腦力的耐玩Flash小遊戲@電腦玩物。游戲總是很有吸引力。
這周沒開QQ,好像有的朋友去玩了百度HI,我覺得那個還沒有QQ有用,自然就不用了。愛棗報看到的鏈接:mao片網后面還有有個秘密,下載長江7號 官方桌面小游戲 (剛好這周重看了遍CJ7)。文化部教育部的老爺們,文盲張紀中要翻拍西游記,你們管不管?這個拍出來估計很囧,和邪社首發史上最強NPC造就網游中的戰斗機-盛大《龍神傳說》,一樣很囧,愚人節漸近,左岸讀書愚人節專輯可以參考一下。
本周收藏的幾個地址:
周末重新看了CJ7,幽靈公主,感覺還是一樣的好,看完10000BC覺得沒有別人說的那么差勁,意淫也好狗屎運也好我都是很喜歡的??戳祟^5卷IQ博士的漫畫,看了兩集School days的動畫。本次回顧的圖片為龍珠電影的一張劇照,這電影大概要等到明年初了。ending...
Portal 是我非常想玩的一個游戲,可惜目前機器連hl2都帶不動,只能等暑假換了機器再玩了。昨晚上做完回顧后發現了一個PMOG的Mission,里面介紹了不少有趣的物理小游戲,Portal flash就是其中之一,一共只有40關,于是迫不及待打通關了,2D版應該比3D要簡單的多了,不過還是推薦一下 。
點擊打開游戲地址。
本周周末有點忙碌,忙碌中學到不少,之后幾周應該都會忙碌一些。這周學業沒什么進一步突破,終于正式開始接觸8086的匯編語言。周末對于C#實踐了小小一部分,今天找到了本.net IL匯編的電子書,Apress的《Expert.dot.NET.2.0.IL.Assembler》,有機會的話胡亂看一些?,F在還不知道C#里的函數如何返回左值,C#的線程函數能否傳遞參數,繼續慢慢學習。
soff的案子判了,三年有期徒刑,罰沒收入118萬。最后是騰訊勝了,很早就用珊瑚蟲的插件了,不知道珊瑚蟲捆綁了那些所說的流氓軟件。騰訊現在是很壯大了,為soff覺得不平?!,F在qq幾乎不用,實際行動抵制騰訊。。
前幾天有人問什么是云計算,我只知道是種分布式運算,Google及其云智慧這篇文章可以看看。還是Google,Google淘汰的產品,不少有趣的東西。BTW:我最近淘汰了谷歌拼音,改用搜狗了,搜狗自定義的顏色還是感覺更好(如圖)。

本周閱讀很少,只是收藏了一些網站網頁:
看完了日劇liar game,還有一部歲數比我大的動畫片風之谷。
本周回顧結束。
針對GPCT的比賽說明用C#進行了一些編程活動,期間了解到C#動態裝載Assembly的強大,獲得程序集自定義屬性等等的一些知識碎片。C#很不習慣的一點就是New出來很多很多對象卻都不用delete,真的是比較別扭,其它的倒是真方便。今天看.net的IL代碼,真的產生了不少的興趣,過些日子去找本書看。TortoiseSVN的版本控制軟件這次也有幸使用了一下,因為是同宿舍兩位同學合作coding,希望我們都能逐漸成長。于是乎今天work時間到達了近8小時,平時估計每天有一個小時就不錯了,呵呵。work work,平時太荒廢,以后還是養成慣性的好。
OK,that's all,明天的周回顧等明天再寫了。

這周在學習方面稍稍有點兒狀態了。微機原理與接口技術這門硬件基礎課程估計要多學一下,編譯原理我在看那本《程序設計語言-實踐之路》,算法導論也要再學一學。買了本thinking in java 4th,慢慢的看。我們這門WDM編程的課程不會指望老師講多深,老師現在還在解釋dll跟靜態庫,跟太平洋電腦網的教程講的一樣,配圖都打著pconline的水印,老師夸口說有能力寫本比MFC深入淺出還牛13的多的書(囧),侯捷的mfc深入淺出我主要看了原理部分,的確深入淺出,文筆也很好,這本書大概在海外也是影響不錯的,侯捷多牛啊,翻譯的深度探索c++對象模型也不是蓋的,俺們的老師口氣還是不小的,期待他的大作。
李開復前幾天來我們學校做演講,他做宣傳大概有好幾年了吧,教育大學生人生道理很不錯,不過我倒不怎么哈他,從微軟離開而投靠Google是他的選擇,我覺得這兩個公司在中國的本土化都做得不盡人意。現在希望開復大哥能給解決一下,好好教育一下百度同學。這個谷歌的搜索提示不知道算不算是Bug,谷歌拼音還是沒有搜狗有競爭力。最后看一下Google外國的工作環境,真的有些向往。
這周終于知道了一個很好的NDS模擬器,no$gba 2.6a版本,終于可以順暢的玩Jump明星大亂斗了,這位作者真是很強,很慚愧我沒能捐助他$,不過以后一定會補上的。
玩了一個有趣的游戲“下流的蛋蛋”,英文名CONTOUR,挑戰你的智力更加挑戰你的耐心,我心智不怎么樣,目前只打過去14關,以后有閑再繼續。
昨天看了The Mist,讓我很震撼的一部電影,有些味道讓我想起了大逃殺,如果你身在這個迷霧中,你會做什么選擇?
西藏最近有點兒亂,我覺得我們應該堅定不移維護祖國統一,希望死傷越少越好,少點人被那些自私而別有用心的人忽悠。
這周就到這里了。