- 博客(94)
- 收藏
- 关注
原创 【初学设计模式】Abstract Factory (抽象工厂)
设计模式, Design Patterns, Abstract Factory, 抽象工厂, C++, UML
2011-03-17 19:14:00
603
原创 【初学设计模式】序
终于决定系统地学习一下设计模式了。参考的书是GoF的经典《设计模式》,机械工业出版社,2000.09年版。语言是C++,以后有时间的话打算用C#也实现一下。艻UML类图的工具是StarUML,一个开源的工具。由于没系统学过UML,可能有些地方画的不对。但我已经争取做到无误了。风格呢,一是UML类图只反映大概关系,不会把一些代码的一些细节放上去,如不太重要的构造函数之类;二是很多类函数的实现都用std::cout打印了函数名;三是用main()函数模拟了很多模式里的Client;四是涉及到列表时基本都STL里
2011-03-17 19:09:00
664
原创 【探索wireshark】 动态调用libwireshark.dll中的函数
wireshark, ethereal, libwireshark.dll, 动态调用, wireshark源代码, wireshark研究
2011-02-12 23:12:00
6807
翻译 【ASP.NET MVC2】LINQ to SQL演练
C#3.0, .NET3.5, .NET4.0, LINQ, LINQ to SQL, Visual Studio 2010, ASP.NET MVC2
2010-12-07 12:38:00
2593
原创 在ASP.NET MVC2中使用自定义的AuthorizeAttribute绕过内置的Membership/Role机制
ASP.NET MVC2, Authentication, Authorization, Authorize, Membership, Role, Custom AuthorizeAttribute
2010-12-03 20:36:00
7906
4
原创 使用CreateProcess函数实现隐秘的程序调用之二:使用匿名管道
前一篇文章已经实现了基本功能,但有一个问题,就是需要读写硬盘上的文件。如果实在不想读写文件,可以将进程启动信息中的输出重定向到一个匿名管道,再从管道中读取进程的输出即可。void CCPTFDlg::OnBnClickedBtnPing(){ UpdateData(TRUE); BOOL bRet = FALSE; // 拼接要执行的命令行,如"ping.exe www.google.com" CString sAddr; GetDlgItem(IDC_EDIT_ADDR)->G
2010-10-10 12:26:00
3838
翻译 使用CreateProcess函数实现隐秘的程序调用
有时候,我们需要在自己的程序里调用另一个程序,比如说一个控制台程序,然后希望利用它的输出。简单的调用system, WinExec, ShellExecute等当然都是可以完成这个目的的,但是呢,这几个函数执行时会蹦出一个黑黑的控制台窗口来,显得我们的程序很不专业:D 所以呢,为了达到掩人耳目的目的,我们可以使用CreateProcess函数。下面是一个小例子:void CCPTFDlg::OnBnClickedBtnPing(){ UpdateData(TRUE); // 拼接要执行的命
2010-10-08 19:33:00
1464
原创 【探索wireshark】 熟悉GTK+
// 探索ethereal 之 3// 熟悉GTK+// blackboy, blackboycpp@gmail.com 背景ethereal 0.2.0使用了GTK+来实现界面, 然而, 由于GTK+的更新很快, ethereal 0.2.0所使用的GTK+版本(1.0.1)和目前的版本(比如, 我所用的2.16.6)已经很不一样了, 很多构件或函数已遭废弃(如GtkText和GtkTree已经被设计更好的GtkTextView和GtkTreeView所代替), 因此直接编译是
2010-09-29 00:45:00
4443
原创 使用word2007发布CSDN Blog[测试]
转载部分链接: http://blog.csdn.net/Drate/archive/2008/12/11/3496948.aspx 通过Word来发布博客我觉得有几个方便的地方: 图文并排,方便截图等,不需要先存成图文文件,直接可以粘贴 离线编辑 利于备份与保存 设置步骤: 选择左上角的按钮,选择发布>博客。 点击"管理帐户",在帐户管理窗口中选择"新建", 在博客服务商中选择"其他"。
2010-09-26 13:27:00
810
原创 【探索wireshark】 使用autoconf, automake等自动生成Makefile
// 探索ethereal 之 2// 使用autoconf, automake等自动生成Makefile// blackboy, blackboycpp@gmail.com 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以轻而易
2010-09-11 23:14:00
998
原创 【探索wireshark】 构建和配置开发环境
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 ethereal/wireshark是最优秀的一款开源协议分析软件。 探索它的内部机理是我很早就有的想法。现在有时间,不如把这件事儿坚持一下吧,好歹给自己一个交待。 1. 准备Linux环境 首先我们需要一个
2010-09-11 22:03:00
1345
原创 在XP+IIS5.1上构建ASP.NET MVC1.0开发环境并布署网站的经验
环境: XP SP2 + IIS 5.1 + Visual Studio 2008 简体中文版 + .NET 3.5 SP1 + MVC1.0 1. .NET Framework 3.5 SP1的安装 Visual Studio 2008默认安装了.NET Framework 3.5。但是如果要安装ASP.NET MVC1.0,则必须先安装.NET Framework 3.5
2010-05-23 22:05:00
8430
1
转载 “Visual Studio 2008 + IE8下,为MFC工程对话框资源添加类时发生错误”问题的解决
当我用Visual Studio 2008建立一个MFC对话框工程,并为刚添加的对话框资源添加类时,向导页弹出了Inernet Explorer脚本错误,导致无法指定基类等等的麻烦事儿。 经google后,发现以下解决办法,与各位共享。 请按以下步骤进行:1. 启动注册表编辑器regedit(64位系统上也可启动32位版本)2. 定位到注册表中如下位置:HKEY_CURRE
2010-03-27 10:21:00
1869
转载 在国外BBS上找到的获取BDA设备信号统计值方法
原文地址:http://forums.dvbowners.com/index.php?showtopic=1111&st=20 一开始被这个难住了,还以为要学WDK/DDK呢。。。还好还好,也许用这个可以 HRESULT hr2; CComPtr bdaNetTop; hr2 = m_pTunerDevice.QueryInterfac
2010-03-09 14:00:00
1463
原创 用MFC写的一个简单的图片格子控件 CPicGrid
特性:1. 用户可动态指定n*n格子2. 支持bmp图片3. 需要父窗口支持 以下是头文件:#pragma once// CPicGridclass CPicGrid : public CWnd{ DECLARE_DYNAMIC(CPicGrid)public: CPicGrid(CWnd* pParent, int n, int i
2010-01-25 22:25:00
1212
转载 CreateThread、_beginthreadex和AfxBeginThread
原文地址:http://blog.csdn.net/ljx0305/archive/2009/09/21/4577027.aspx【参考1】CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别 ===============================================================
2010-01-11 20:48:00
647
原创 仿函数, 函数适配器,与STL算法的配合使用
//// 学习仿函数的用法, 以及与函数适配器,STL算法的配合使用#include #include #include #include using namespace std;// 仿函数(functor), 或称函数对象(function object),// 用于给find_if函数提供判断式(谓词predicate)templatest
2009-12-31 22:59:00
674
转载 IE主页被修改的解决办法【转自百度知道】
运行regedit,找到 HKEY_CLASSES_ROOT/CLSID/{871C5380-42A0-1069-A2EA-08002B30309D}/shell/OpenHomePage/Command,打开后把后面的网址改成你想要的就行了。
2009-12-31 22:06:00
572
1
原创 数组元素指针, 指针数组, 数组指针, 函数指针。 4朵让人纠结的概念
#include using std::cout;using std::endl;int foo(double, double);int main() { int arr[5] = {1, 2, 3, 4, 5}; // 指向数组元素的指针 int* p = arr; for(int i=0; i<5; ++i) cout << p[i] <<
2009-12-16 00:48:00
640
原创 获得当前进程的可执行程序所在的目录
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 有时我们需要获得当前执行程序所在的目录.在这种情况下, 不要相信GetCurrentDirectory()函数所得到的目录,它只是当前工作目录, 而并非exe程序所在目录. 这种情况一般发生在: 当你在D:/dev/下有一
2009-12-10 18:37:00
2190
原创 C++基础 - 内置类型和类类类型的初始化
#include #include #include using namespace std;int global_n; // 函数体外的内置类型变量被自动初始化为0//////////////////////////////////////////////////////////////////////////// 系统将提供一个默认构造函数来构造Class
2009-12-10 18:35:00
3440
原创 使用CBaseFilter, CBaseInputPin和CBaseOutputPin写一个简单的Filter
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 类定义: //=============================================================================// 名 称 : zp_Gate.h// 功 能 : Filter, 输入
2009-11-26 12:30:00
2538
1
原创 MyGirl,曾哥,PLMM,以及C++之间的关系
纯娱乐,顺便复习C++。 请曾哥歌迷勿打击报复 mygirl.h #ifndef MYGIRL_H_#define MYGIRL_H_// 漂亮MM, 借<<表达我的爱慕之情class PLMM{ friend ostream& operator << (ostream& os, const PLMM& mm) { os << "哇, 美女!/
2009-11-24 00:11:00
776
原创 结束超时的耗时线程 - 两种方法
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 有时候我们需要线程执行指定的时间后, 结束它,例如,让采集线程采集100秒的数据。这时, 就需要在线程超过时间限制后结束它。 下面给出了Win32 console小例子, 使用VC++ 2005编译: // main.cpp 主程序
2009-11-12 19:23:00
2168
转载 VC++预编译头文件问题
预编译头文件今天在改一个很大的程序,慢慢看,慢慢改。突然发现一个.c文件,里面什么也没有, 就几个头文件,我一看,我靠,这不是把简单的问题搞复杂了吗,随手删掉那个c文件。 结果不能编译了,我靠: fatal error C1083: Cannot open precompiled header file: Debug/v13_3.pch/: No such file or director
2009-11-11 00:09:00
1825
原创 TS Source Filter + MPEG-2 Demultiplexer Filter进行简单的TS流解复用(之二:用代码实现)
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 Source Filter依然使用上篇文章中的TS Source Filter。Demux Filter当然依然使用MS MPEG-2 Demultiplexer。 修改DirectX SDK的C++ Samples下的PlayWnd例子,加入以
2009-11-08 12:24:00
4015
2
原创 TS Source Filter + MPEG-2 Demultiplexer Filter进行简单的TS流解复用(之一:在GraphEdit中测试)
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 这个Filter的主要作用是把TS文件分割成TS包并发送至下游的MPEG-2 Demultiplexer(Push模式)。通过在GraphEdit里(当然也可以编码实现)对MPEG-2 Demultiplexer进行必要的设置,再连接一些Decoder和Re
2009-11-07 13:47:00
7856
7
转载 在vs2005中配置directshow开发环境
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 首先,就是编译baseclasses,什么是baseclasses?打开你的dx的sdk安装目录,例如:D:/DX90SDK/Samples/C++/DirectShow/这里就有一个叫baseclasses的工程,为安全起见,请先备份此工程。1,双
2009-11-04 23:07:00
1266
原创 MPEG2-TS流的分析
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 对TS流的分析, 涉及到对PAT,PMT等等的分析, 具体内容见iso/iec 13838系列文档, 本文只给出自己写的一些和TS分析想关的代码, 简单的分析足够了, 不考虑复杂情况: //////////////////////////////
2009-10-13 19:48:00
5189
1
原创 在线程中监测文件夹的变化,并获得通知 【C++ Builder下例子】
线程的头文件和实现文件如下://---------------------------------------------------------------------------#ifndef Unit2H#define Unit2H//-----------------------------------------------------------------------
2009-10-13 19:43:00
1812
原创 用VC++6实现文件夹浏览对话框
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 这种对话框貌似没有现成的类或控件可以用,用以下的方法可以轻松实现一个: 在对话框上拖一个按钮, Caption为“浏览”, 双击之,添加以下代码void CBrowserFolderDlg::OnButton1() { // TODO
2009-10-13 19:38:00
2310
1
原创 将文件拖曳到窗体上, 并获取其完整路径 【C++ Builder下实现】
1. 在窗体的头文件.h里声明处理函数和消息映射, 如:class TForm1 : public TForm{... void __fastcall HandleDropFiles(TMessage &Owner;... BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_DROPFILES,TMessage,Handl
2009-10-13 19:21:00
2318
原创 在代码中调用程序版本信息 【C++ Builder下例子】
我们有可能需要在代码中调用文件的版本信息, 例如, 产品名称, 文件版本, 公司名称, 版权信息等等.以下在C++ Builder下用API 编程实现了程序版本信息的调用。 struct TTranslate{ WORD wLanguage; WORD wCodepage;};void __fastcall TAboutBox::FormCreate
2009-10-13 19:15:00
1547
原创 ip数据报首部的校验和算法
不仅是ip首部, 多种网络协议都用到了此种校验算法来求得校验和(checksum).这种算法称之为: 二进制反码求和. 不知道为什么会取这么一个别扭的名字.算校验和的时候, 要注意那些字节参与计算, 哪些不参加. // 求协议头字段的校验和(checksum)#include unsigned shortcksum(const unsigned char* buff, int
2009-10-13 19:13:00
1684
原创 boost库中好用的bitset(位串)
// boost中的bitset// 太棒了#include #include #include int main(int argc, char* argv[]){ int n=32; boost::dynamic_bitset mb(n, 0x1a2b3c4d); std::cout << "my bitset: " << mb.
2009-10-13 19:05:00
3783
1
原创 Boost Graph Library (BGL)学习:使用Bundled Properties
// 所有原创文章转载请注明作者及链接// blackboycpp(AT)gmail.com// QQ群: 135202158 /* * 文件: Unit1.cpp * 日期: 2008-12-31 8:59:53 * 作者: blackboy * 描述: BGL学习 - 使用Bundled Properties */ //--
2009-02-22 19:15:00
3569
原创 一个很简单的日志类ZPLog, 用于输出日志
使用时, 请将zp_log.h和zp_log.cpp复制到你的程序目录, 并在代码中#include "zp_log.h"ZPLog类概述:创建ZPLog对象后, 将根据当前日期时间信息构造log文件名, 然后用户可以使用ZPLog类函数:ZPLog() 默认构造函数, 输出目录为C:/, 最大行数为10000ZPLog(int line)输出目录为C:/, 最大行数由line指定ZPLog(
2009-02-22 16:35:00
1131
转载 如何在运行时确定对象类型(RTTI) [转载]
如何在运行时确定对象类型(RTTI)作者:NorthTibet RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两个重要的 RTTI 运算符的使用方法,它们是 typei
2008-12-14 12:28:00
754
转载 30分钟掌握STL [转载]
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分
2008-12-14 11:14:00
579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅