本打算31号晚上写的,不想网不通,没办法,去年的总结就有今年来写了。
BlogReader也算到了0.4吧,太快了?没法,让我自我陶醉一下吧。
改动见上一篇文章,http://www.cnblogs.com/xhluo/archive/2004/12/29/83959.html
Net2.0版本下的源程序和执行文件。(12.29修改)
Net1.1版本下的源程序和执行文件。(12.29修改)
总体下来,现在程序支持压缩、判断更新时间、标题与内容分存。
不支持的呢,那就多了,不支持网页重定向、没有条件监视功能、不可以将IE当前浏览的联接或内容保存、不能分析文章的引用关系、内存消耗过大等等。
不过,我看了看RssBandit的,也一样,启动后50M,但由于它没有采取多个线程同时更新的做法,内存使用保持基本稳定。
SharpReader的就不用说了,当时也是因为它的内存消耗太大,才萌发了作这个软件的念头的。要是它也存在存在8000多篇文章,包括900篇博客园的,估计它能整背过去。哈
不说是为了时髦或是想学点东西,这个BlogReader就是我的试验田,这两天正在把代码往C++/CLI下转,用一样的控件,一样的实现,看看C++/CLI是不是真像Microsoft说的the first class language for Net。
今天刚把界面整完,还挺麻烦的,SandBar在C++/CLI下支持还不好,没法用它的可视化设计界面,所有的代码都的手动改。这还罢了,图标也没法加,只好新建一个别的窗口,加好图标后再复制过去,总算还能用。不过以当前的来看,在C++/CLI下,用纯Net语法,和C+#比,没有改变。我想,只有结合了native C++可能才能真正表现他的the first class罢。
所以,最初部的打算,起码将Net下的范型转到STL下,这个Lippman已经说了性能提高,多少不知。
等有了心得,在交流。
当然,C#下的也会更新。
最后,问一问,在自己的软件中大段大段的使用甚至一个一个文件的使用开源的代码,但不是完整的使用,不知道这个行为该奖还该罚???
补一段代码吧,博客园还不支持C++的语法。
这是窗口布局的。
下面是我的一段试验性代码。
BlogReader也算到了0.4吧,太快了?没法,让我自我陶醉一下吧。
改动见上一篇文章,http://www.cnblogs.com/xhluo/archive/2004/12/29/83959.html
Net2.0版本下的源程序和执行文件。(12.29修改)
Net1.1版本下的源程序和执行文件。(12.29修改)
总体下来,现在程序支持压缩、判断更新时间、标题与内容分存。
不支持的呢,那就多了,不支持网页重定向、没有条件监视功能、不可以将IE当前浏览的联接或内容保存、不能分析文章的引用关系、内存消耗过大等等。
不过,我看了看RssBandit的,也一样,启动后50M,但由于它没有采取多个线程同时更新的做法,内存使用保持基本稳定。
SharpReader的就不用说了,当时也是因为它的内存消耗太大,才萌发了作这个软件的念头的。要是它也存在存在8000多篇文章,包括900篇博客园的,估计它能整背过去。哈
不说是为了时髦或是想学点东西,这个BlogReader就是我的试验田,这两天正在把代码往C++/CLI下转,用一样的控件,一样的实现,看看C++/CLI是不是真像Microsoft说的the first class language for Net。
今天刚把界面整完,还挺麻烦的,SandBar在C++/CLI下支持还不好,没法用它的可视化设计界面,所有的代码都的手动改。这还罢了,图标也没法加,只好新建一个别的窗口,加好图标后再复制过去,总算还能用。不过以当前的来看,在C++/CLI下,用纯Net语法,和C+#比,没有改变。我想,只有结合了native C++可能才能真正表现他的the first class罢。
所以,最初部的打算,起码将Net下的范型转到STL下,这个Lippman已经说了性能提高,多少不知。
等有了心得,在交流。
当然,C#下的也会更新。
最后,问一问,在自己的软件中大段大段的使用甚至一个一个文件的使用开源的代码,但不是完整的使用,不知道这个行为该奖还该罚???
补一段代码吧,博客园还不支持C++的语法。
这是窗口布局的。
(stdcli::language::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->axWebBrowser))->BeginInit();
this->panelListView->SuspendLayout();
this->groupFilter->SuspendLayout();
this->topSandBarDock->SuspendLayout();
(stdcli::language::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->statusBarBrowser))->BeginInit();
(stdcli::language::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->statusBarBrowserProgress))->BeginInit();
(stdcli::language::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->statusBarThread))->BeginInit();
this->panelListView->SuspendLayout();
this->groupFilter->SuspendLayout();
this->topSandBarDock->SuspendLayout();
(stdcli::language::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->statusBarBrowser))->BeginInit();
(stdcli::language::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->statusBarBrowserProgress))->BeginInit();
(stdcli::language::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->statusBarThread))->BeginInit();
下面是我的一段试验性代码。
void frmMain::frmMain_Load(Object^ sender, EventArgs^ e)
{
TreeNode^ node = gcnew TreeNode("abc");
treeView->Nodes->Add(node);
FeedCategory^ category = gcnew FeedCategory("a");
Feed^ feed = gcnew Feed("bc", category);
FeedCategory^ i = feed->ParentCategory;
String^ s = feed->Name;
}
{
TreeNode^ node = gcnew TreeNode("abc");
treeView->Nodes->Add(node);
FeedCategory^ category = gcnew FeedCategory("a");
Feed^ feed = gcnew Feed("bc", category);
FeedCategory^ i = feed->ParentCategory;
String^ s = feed->Name;
}