心雨心路_百度空间
 
背景音乐
 
     
 
文章列表
 
2009-04-19 13:58

   年后买了个不到60平米的二手房,最近周末就频繁的往返于各个家具销售点。可是,越转是越发现,咋现在的家具就这么大呢?一个床外加一个衣柜,摆到我们那十四来平的卧室里,硬是开不开门,即便是推拉门,中间的空隙占个人都费劲。还有就是因为空间太小,所以床想要一个箱体的,可是现在的箱体床真是好少啊。最气人的是,昨天去红星美凯龙的恒信家私,问问人家有没有箱体床。一个胖胖的女服务员领我们看了一个她那仅有的深颜色箱体床,因为对于那个颜色,我实在是不喜欢就往外走。可那个服务员却跟在我们后头喋喋不休:什么现在箱体床过时了,什么只有老人才要箱体床,什么就是破烂多舍不得扔才放箱体床......不能说人家说的不对吧,可听的心里不太舒服(可能是我太小气了吧,呵呵)。

    我就纳了闷了,看附近的小区也没几个大平米的房子呀,可家具咋就越来越大了呢。莫非是现在的人都有钱了,都是一百来平的大房子。哎!看来为了买一个装的下现代家具的卧室,自己还得努力奋斗啊!无奈中......

 
2008-09-03 10:50
虚拟机:vmware
Linux版本:CentOS(版本不会造成很大差异) (我用的RedHat可以)

vmware下那种精简版的,有个server.bat批处理,启动1(启动本机网络服务),3(启动DHCP。NAT。默认安装网卡 ) (这段不懂)
在虚拟机下设置网卡网络连接为桥接,设置状态两个选项卡都钩上

文本方式登陆linux后,输入netconfig (界面方式下终端输入)
IP ADDRESS:你的IP
netmask:掩码
Default gateway:默认网关
Primary nameserver: DNS

接着对该网卡eth0接口操作
ifconfig eth0 down
ifconfig eth0 up
再重新启用下服务
service network start
出现三个OK表示成功
可以再用ifconfig命令看下配置

测试:
真实机上ping虚拟机的linux看通不
虚拟机上可以
ping www.163.com
出现
64 bytes from XXX.XXX.XXX.XXX icmp_seq=19 ttl=54 time=51.3 ms(大概这样)

就可以了
 
2008-08-14 09:55
       随着奥运会的召开,体育迷胖胖很是兴奋。每每看完一场比赛,总要在博客上发表一番感慨。也许正是他的感慨,引起众多网友的共鸣,昨天空间访问量骤增,居然上了空间的首页,排到第三位。本来这是一件很高兴的事情,可谁知就在昨晚要睡觉的时候,空间居然登不上去了,提示信息是密码不对。试了又试,不行。最后当发现空间的内容被改了之后,才知道被盗了...不仅如此,那人还把他的两个邮箱都清空了。当时,我俩都很无奈,很不理解,这人的居心何在?其实到现在,我还是很不理解...
        胖胖犯的错误可能是因为,他的密码就是用得用户名吧。在此也提醒广大博友,不要把自己的密码设成用户名,以免被盗。虽说不会有大的损失,但心情上总会收些影响吧!


 
2008-07-30 10:14
我在一个控制台程序中使用了_beginthreadex函数,并包含了PROCESS.h头文件. 但总是编译错误:error C2065: '_beginthreadex' : undeclared identifier.上网一查,才知道需要做以下设置:
工程->设置->C/C++->Code Generation->Use run-time libray->选 Debug Multithread(多线程),或 Multithread.
 
2008-05-29 20:28
    BoundsChecker是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。              

BoundsChecker能检测的错误包括:3sNews.Net——3S社区&资讯平台 t b U ^ N @ i7p'w M V B e
     1)指针操作和内存、资源泄露错误,比如:内存泄露;资源泄露;对指针变量的错误操作。
     2)内存操作方面的错误,比如:内存读、写溢出;使用未初始化的内存。平台 n.U3U B C _3S社区&资讯平台!z&v k.U M [8S([
     3)API函数使用错误。

    使用BoundsChecker对程序的运行时错误进行检测,有两种使用模式可供选择。一种模式叫做ActiveCheck,一种模式叫做FinalCheck。下面分别进行介绍。
    1)ActiveCheck是BoundsChecker提供的一种方便、快捷的错误检测模式,它能检测的错误种类有限,只包括:内存泄露错误、资源泄露错误、API函数使用错误。
U `)R4p+~0要想使用ActiveCheck模式来检测程序的运行时错误,只需在VC++集成开发环境中打开BoundsChecker功能,然后从调试状态运行程序即可。此时ActiveCheck会在后台自动运行,随时检测程序是否发生了错误。下面说一下具体的使用步骤。
    首先,在VC++集成开发环境中打开你要对其进行测试的程序,同时保证项目处于Debug编译状态下。3sNews.Net——3S社区&资讯平台 c i3V$D0[/a7M k j
     其 次,确保VC++集成开发环境中[BoundsChecker/Integrated Debugging]菜单项和[BoundsChecker/Report Errors and Events]菜单项处于被选中的状态。只有这两项被选中,BoundsChecker才会在程序运行过程中发挥作用。
,~ ]*f:{)Y+U+S0     最后,在VC++集成开发环境中选择[Build/ Start Debug/Go]菜单命令,在Debug状态下运行程序,ActiveCheck也在后台开始运行了。
     2)FinalCheck具有BoundsChecker提供的所有检错功能。 FinalCheck 是ActiveCheck的超集,它除了能够检测出ActiveCheck能够检测出的错误,还能发现很多 ActiveCheck 不能检测到的错误,包括:指针操作错误、内存操作溢出、使用未初始化的内存等等,并且,对于ActiveCheck能检测出的错误,FinalCheck 能够给出关于错误更详细的信息。所以,我们可以把FinalCheck认为是ActiveCheck的功能增强版。我们付出的代价是:程序的运行速度会变 慢,有时甚至会变的很慢。
x ~ ?#I A0^5d.y#_ W0      要 想在FinalCheck 模式下测试程序,不能使用VC++集成开发环境提供的编译连接器来构造程序,而必须要使用BoundsChecker提供的编译连接器来编译连接程序。当 BoundsChecker的编译连接器编译连接程序时,会向程序中插装一些错误检测代码,这也就是FinalCheck能够比ActiveCheck找 到更多错误的原因。
&C x!U T B&k0     下面就#q/S P3T w0介绍一下如何在FinalCheck模式下对程序进行测试:3sNews.Net——3S社区&资讯平台8x t j E l)p
     1)在VC++集成开发环境中打开你所要测试的项目。3sNews.Net——3S社区&资讯平台 ~ E J#H a$k
     2)由于要使用BoundsChecker的编译连接器重新编译连接程序,所以我们为BoundsChecker独自构造一个文件夹。在VC++集成开发环境中,具体操作方法是:
O Q ~2C ~&G c0     A)点击[ Build/Configurations...]菜单命令。3sNews.Net——3S社区&资讯平台+M e!X ~ | T k8O \ l k4D
     B)在弹出的对话框中点击 Add 按钮。在Configuration 编辑框中添入你为BoundsChecker创建的文件夹的名称,这个名称是任意的,比如我们取名为BoundChecker。3sNews.Net——3S社区&资讯平台 v ~ z'Z O R)L1e
     C)在 Copy settings from组合框中选中XXX—Win32 Debug项,然后点击OK按钮,接着点击Close按钮。
B p%Z3q H/U7P g Q#L0 现在,我们已经为FinalCheck构造好了一个文件夹。
\5L&{+Q.^#[0    3) 点击[Build/Set Active Configuration…] 菜单命令,选中你刚才为BoundsChecker建的文件夹,然后点击OK按钮。这样BoundsChecker编译连接程序时生成的中间文件、可执行程序,都会被放到该文件夹下。3sNews.Net——3S社区&资讯平台 D i#f f*a
    4)选择[BoundsChecker/Rebuild All with BoundsChecker] 菜单命令,对程序重新进行编译连接,也就是在这时,BoundsChecker向被测程序的代码中加入了错误检测码。编译连接完成后, BoundsChecker会在你为BoundsChecker构造的文件夹中生成可执行文件。
3^ r'? Z V v a0      在FinalCheck模式下对程序进行检测的准备工作都已经做好,这时可以启动程序开始测试了,作步骤与在ActiveChecker模式下没什么区别。具体步骤如下:S S;g
  • 确保VC++集成开发环境中[BoundsChecker/ Integrated Debugging]菜单项和[BoundsChecker/Report Errors and Events]菜单项处于选中状态。
  • 点击[ Build\Start Debug]菜单,选中“Go” 菜单项。程序开始在Debug状态下运行。
  • 按照你制定好的测试用例,对程序进行操作。
    m8\6V l `"`0
  • 当BoundsChecker 检测到了错误时,会弹出窗口向你汇报,你可以当时就进行处理,也可以等到你的操作全部完成,退出程序之后再对列出的这些错误进行分析。这完全取决于你是否 选中了[BoundsChecker/Report Errors Immediately] 菜单项。
  • 退出程序后,BoundsChecker会给出错误检测结果列表。该错误列表与ActiveChecker给出的错误列表的查看方法完全一样。只不过这个列表中所报告的信息会更多、更详细一些。
     好 了,BoundsChecker在FinalCheck模式下的使用也介绍完了。ActiveChecker、FinalCheck这两种模式,比较而言 各有长短。ActiveChecker使用方便,只需在Debug状态下直接运行程序即可,并且程序的运行速度较快,但检测的错误种类有限; FinalCheck模式下,需要使用BoundsChecker的编译连接器重新编译连接生成可执行程序,并且程序的运行速度比较慢,但检测的错误种 类、提供的错误相关信息要多于ActiveChecker。所以,何时使用何种模式,应根据当时的具体情况而定。
:[ a&v P C O;q0
e/f8h Z-q*~ T k f o U&v0 3sNews.Net——3S社区&资讯平台-Y N v C E
3sNews.Net——3S社区&资讯平台 H(u/P#D.c Q J$u

 
2008-05-28 22:44

    对于窗口程序,一 般有个特点:窗口大部分的区域保持不变,只有部分区域需要重新绘制。如果将整个窗口全部刷新的画,就做了许多不必要的工作,因而,MFC采用了一套基于无 效区的处理机制。在分析无效区处理之前,我们要明白一个现实,现在的机器还不够牛,如果够牛的话,我们干脆将整个窗口不断的重新绘制好了。事实上即使够牛 也不行,对于一个单线程程序,通过一个while循环不断的刷新窗口,程序也无法响应其它消息(除非使用多线程),看来使用无效区的处理机制还是有其必然 性的。

    VC程序是基于消息机制的,你所做的任何操作,比如点击鼠标,拖动窗口,首先进入系统的消息队列。这里的系统消息队列包括多个程序的消息,系统再将消息发 送给相应的程序。既然是队列,这就有一个先进先出的问题,屏幕上的无效区更新消息出现的频率就会特别高。比如当左上角更新的消息还没有处理,右下角更新的 消息已经过来了。为了避免多次处理WM_PAINT消息,系统就将这些窗口更新消息合并到一条,只是将无效区范围变成包括这两次更新无效区范围在内的矩形 区域。这样就减少了WM_PAINT消息的处理次数,提高了效率。

    那么,在OnPaint消息处理函数中,又是怎样实现更新无效区的呢?首先,要明白MFC中所有绘图操作都是基于设备描述表(Device Context,简称DC)的。DC中包含了绘图设备的各种信息,对于屏幕绘图,其实就是有一块内存(显存),专门用来 存放要显示到屏幕上的信息,显示器以85HZ的频率(我以前的显示器)将其内容刷新的屏幕上。这里就到了关键点,显示器的刷新是将显存中的内容完全更新到 显示器上,不存在无效区处理的问题,那么,无效区的处理一定发生在DC的绘图处理上。事实确实如此,当程序调用OnPaint消息时,首先将无效区范围传 递给DC,DC在进行绘图操作时,就只更新无效区范围内的信息,其它地方的不管,这就提高了效率。

    现在你明白OnPaint的处理是怎么一回事了吧?这里还想说一下Invalidate和UpdateWindow的区别。Invalidate在消息队 列中加入一条WM_PAINT消息,其无效区为整个客户区。而UpdateWindow直接发送一个WM_PAINT消息,其无效区范围就是消息队列中 WM_PAINT消息(最多只有一条)的无效区。效果很明显,调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一定在队列 头部,而调用UpdateWindow会使WM_PAINT消息马上执行的,绕过了消息队列。如果你调用Invalidate之后想马上更新屏幕,那就加 上UpdateWindow()这条语句。

 
2008-05-20 21:51
如何实现双缓冲
首先给出实现的程序,然后再解释,同样是在OnDraw(CDC *pDC)中:
CDC MemDC; //首先定义一个显示设备对象
CBitmap MemBitmap;//定义一个位图对象
//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
//这时还不能绘图,因为没有地方画 ^_^
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小,也可以自己定义(如:有滚动条时就要大于当前窗口的大小,在BitBlt时决定拷贝内存的哪部分到屏幕上)
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);

//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色将位图清除干净,这里我用的是白色作为背景
//你也可以用自己应该用的颜色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
//绘图
MemDC.MoveTo(……);
MemDC.LineTo(……);

//将内存中的图拷贝到屏幕上进行显示
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();
 
2008-05-11 23:04



一大青山云接天,
白水茫茫总是泉。
不见道人何处觅,
舟工来问渡头舡。

夜来天上星稀明,
月下高吟李白诗。
寺远不闻钟鼓便,
更深却见斗牛移。
多少神仙来聚会,
人间一世使心机。
几时到得桃源洞,
同共神仙看象棋。



 
2008-05-11 22:49
今天再次领教了“2008年奥运合作伙伴-中国网通”的服务态度,真是郁闷致极呀!要是奥运会都这样对待各国游客,那估计中国就......哎!可叹呀......可悲呀......
 
2008-04-22 22:35

毕业上班以来,就基本上没有更新过空间了。一来是只有上班的时候才能上网,而上班的时候就得干活;二来住的地没有装宽带,上不了网。所以空间的更新就被慢慢遗忘了。终于,这个月把宽带装上了,可又由于沉迷在QQ自由幻想里...总之,到现在才想起,我还有一个空间的存在。以后要多多的更新了!!!
 
     
 
 
个人档案
 
xinyuxinlu
女, 
 
   
 
最新照片
 
   
 
文章存档
 
     
 
文章分类
 
     
 
最新评论
 
     
 
留言板
 
     
 
最近访客
 
 

jesse8086

barachel

phzhangyw

lihao112

xhhjin

royhawk

luozhiyong131

akof1314
     
 
订阅我的空间
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     

帮助中心  |  空间客服  |  投诉中心  |  空间协议
©2012 Baidu