﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-爱听古典的蚂蚁-随笔分类-C++Builder 相关</title><link>http://www.blogjava.net/antz/category/13891.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Nov 2007 04:48:55 GMT</lastBuildDate><pubDate>Wed, 28 Nov 2007 04:48:55 GMT</pubDate><ttl>60</ttl><item><title>概率论</title><link>http://www.blogjava.net/antz/archive/2007/11/28/163588.html</link><dc:creator>小蚂蚁</dc:creator><author>小蚂蚁</author><pubDate>Tue, 27 Nov 2007 16:51:00 GMT</pubDate><guid>http://www.blogjava.net/antz/archive/2007/11/28/163588.html</guid><wfw:comment>http://www.blogjava.net/antz/comments/163588.html</wfw:comment><comments>http://www.blogjava.net/antz/archive/2007/11/28/163588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/antz/comments/commentRss/163588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/antz/services/trackbacks/163588.html</trackback:ping><description><![CDATA[前几天有个大学生找到我要写个程序,又不想让我知道程序用在什么地方,画了半天xyz 我大概知道他的意思,我问他是不是用来买彩票的,他不好意义的确认了.真想和他讲讲概率论,但看他研究得这么起劲也不好打击他,何况写这程序我可以收一笔小钱来买点书<img alt="" src="/CuteSoft_Client/CuteEditor/images/emwink.gif" align="absMiddle" border="0" />.算法是这样的:某个游戏有总数个N球,每次将会出M个球,如果你买B个球的话就能挣钱.现在要写个程序,随机在N个球里找出A个球(N&gt;M&gt;A&gt;B),A个球里找出所有B个球的组合,并用这些B个球去匹配出M个球的历史记录,找到最远没出这B个球的买法A.看起来复杂,其实可以通过一个镶套的递归算法来解决,我用了单独一个线程来和处理界面的程序分开,把递归算法用个Recusion的C++类封装起来(幸亏没用C的写法,不然写到后面就惨了),加上点ADO的数据库代码,完工!<br />
但我不认为那小伙子能用这程序挣到钱,因为概率论的精髓就是:本次发生的事件和上次无关. 
<img src ="http://www.blogjava.net/antz/aggbug/163588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/antz/" target="_blank">小蚂蚁</a> 2007-11-28 00:51 <a href="http://www.blogjava.net/antz/archive/2007/11/28/163588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>芝麻开门</title><link>http://www.blogjava.net/antz/archive/2007/11/23/162748.html</link><dc:creator>小蚂蚁</dc:creator><author>小蚂蚁</author><pubDate>Fri, 23 Nov 2007 15:15:00 GMT</pubDate><guid>http://www.blogjava.net/antz/archive/2007/11/23/162748.html</guid><wfw:comment>http://www.blogjava.net/antz/comments/162748.html</wfw:comment><comments>http://www.blogjava.net/antz/archive/2007/11/23/162748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/antz/comments/commentRss/162748.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/antz/services/trackbacks/162748.html</trackback:ping><description><![CDATA[VCam SDK正是我要找的东西,除了那个水印外没有其他限制,估计加密机制在驱动层里，我要学的东西已经够多了,没打算为了解这东东专门去学windows的驱动编程,但还是想碰下运气,跟踪了设置授权码的函数,找到DeviceIOControl的时候脑子里有个念头闪了一下,找来IDA反编译VCam的驱动,查找Function Code,接下来继续看...写这程序的老兄估计和我一样懒,为了调试方便加了句...呃...加了句"芝麻开门"!呵呵,美好的一天.
<img src ="http://www.blogjava.net/antz/aggbug/162748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/antz/" target="_blank">小蚂蚁</a> 2007-11-23 23:15 <a href="http://www.blogjava.net/antz/archive/2007/11/23/162748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flash 控件</title><link>http://www.blogjava.net/antz/archive/2006/12/19/88737.html</link><dc:creator>小蚂蚁</dc:creator><author>小蚂蚁</author><pubDate>Tue, 19 Dec 2006 04:28:00 GMT</pubDate><guid>http://www.blogjava.net/antz/archive/2006/12/19/88737.html</guid><wfw:comment>http://www.blogjava.net/antz/comments/88737.html</wfw:comment><comments>http://www.blogjava.net/antz/archive/2006/12/19/88737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/antz/comments/commentRss/88737.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/antz/services/trackbacks/88737.html</trackback:ping><description><![CDATA[搞定一个Flash的VCL控件，跟踪不是很难，就是点多，花了一上午的时间<img src ="http://www.blogjava.net/antz/aggbug/88737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/antz/" target="_blank">小蚂蚁</a> 2006-12-19 12:28 <a href="http://www.blogjava.net/antz/archive/2006/12/19/88737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Auto Update</title><link>http://www.blogjava.net/antz/archive/2006/10/21/76539.html</link><dc:creator>小蚂蚁</dc:creator><author>小蚂蚁</author><pubDate>Sat, 21 Oct 2006 06:42:00 GMT</pubDate><guid>http://www.blogjava.net/antz/archive/2006/10/21/76539.html</guid><wfw:comment>http://www.blogjava.net/antz/comments/76539.html</wfw:comment><comments>http://www.blogjava.net/antz/archive/2006/10/21/76539.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/antz/comments/commentRss/76539.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/antz/services/trackbacks/76539.html</trackback:ping><description><![CDATA[上网找了很多资料，关于自动升级的实现都是基于web的，对我手头上的基于LAN的程序没有帮助，既然程序是数据库的应用，那为什么不把升级的程序放到数据库里呢？mysql的blob字段有长度限制，大概800K左右，要做分段处理，但BCB的Stream机制可以很方便的解决问题。<br /><br />        TMemoryStream* memStream = new TMemoryStream();<br />        TFileStream* fStream = new TFileStream("update.exe",fmCreate);<br />        while (!update-&gt;Eof)<br />        {<br />          update-&gt;GetBlob("Data")-&gt;SaveToStream(memStream);<br />          memStream-&gt;SaveToStream(fStream);<br />          update-&gt;Next();<br />        }<br />        delete memStream;<br />        delete fStream;<br /><br />多优雅的处理，BCB写数据库应用好得没话说。<img src ="http://www.blogjava.net/antz/aggbug/76539.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/antz/" target="_blank">小蚂蚁</a> 2006-10-21 14:42 <a href="http://www.blogjava.net/antz/archive/2006/10/21/76539.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>任务栏上的图标</title><link>http://www.blogjava.net/antz/archive/2006/09/20/70946.html</link><dc:creator>小蚂蚁</dc:creator><author>小蚂蚁</author><pubDate>Wed, 20 Sep 2006 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/antz/archive/2006/09/20/70946.html</guid><wfw:comment>http://www.blogjava.net/antz/comments/70946.html</wfw:comment><comments>http://www.blogjava.net/antz/archive/2006/09/20/70946.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/antz/comments/commentRss/70946.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/antz/services/trackbacks/70946.html</trackback:ping><description><![CDATA[刚写好的程序要用SSL通道来加密数据，为了实现方便通过加载stunnel来实现，程序开始前用CreateProcess打开stunnel，结束后PostMessage(WM_QUIT)，但任务栏上该死的stunnel图标却要用鼠标晃一下才消失，没办法只好“帮”它一把：Shell_NotifyIcon，HWND参数可以用FindWindow找到，uID麻烦点，用调试工具拦截stunnel调用Shell_NotifyIcon的地址，uID=1。<img src ="http://www.blogjava.net/antz/aggbug/70946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/antz/" target="_blank">小蚂蚁</a> 2006-09-20 22:27 <a href="http://www.blogjava.net/antz/archive/2006/09/20/70946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RecordViewDlg</title><link>http://www.blogjava.net/antz/archive/2006/09/20/70721.html</link><dc:creator>小蚂蚁</dc:creator><author>小蚂蚁</author><pubDate>Wed, 20 Sep 2006 02:46:00 GMT</pubDate><guid>http://www.blogjava.net/antz/archive/2006/09/20/70721.html</guid><wfw:comment>http://www.blogjava.net/antz/comments/70721.html</wfw:comment><comments>http://www.blogjava.net/antz/archive/2006/09/20/70721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/antz/comments/commentRss/70721.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/antz/services/trackbacks/70721.html</trackback:ping><description><![CDATA[
		<p>Info Power 是个很棒的VCL，特别是RecordViewDlg控件很有特点，在添加和编辑数据时很有用，但在打开EnterToTab参数时不能跳到确认键上，必须用鼠标操作。还好有它的源码，稍微修改一下就可以了：<br />//--------------------<br />//  wwrcdvw.pas<br />//--------------------<br />......<br />      RecordPanel:= TPanel.create(RecordViewForm);<br />      with RecordPanel do begin<br />         parent:= RecordViewForm;<br />         Left := 0;<br />         Top := 41;<br />         Align := alClient;<br />         BevelInner := bvLowered;<br />         BorderWidth := 4;<br />         Caption := '';<br />         TabOrder := 0;   <strong><em>//I hack</em></strong><br />         Name:= 'RecordPanel';<br />         visible:= True;<br />      end;</p>
		<p>
				<br />      if (rvokShowOKCancel in OKCancelOptions) then begin<br />         ButtonPanel:= TPanel.create(RecordViewForm);<br />         with ButtonPanel do begin<br />            parent:= RecordViewForm;<br />            Left := 0;<br />            Top := 0;<br />            Align := alBottom;<br />            Name:= 'UserPanel';<br />            Caption := '';<br />            TabOrder := 1;  <strong><em>//I hack</em></strong><br />            visible:= True;</p>
		<p>            OkBtn:= TButton(wwCreateCommonButton(RecordViewForm, bkOK));<br />            OKBtn.Default:= not (rvoEnterToTab in Options);<br />            OkBtn.parent:= ButtonPanel;<br />            OKBtn.visible:= True;<br />            OKBtn.OnClick := OKBtnClick;<br />            OKBtn.TabStop:= True;  <strong><em>//I hack</em></strong></p>
		<p>            CancelBtn:= TButton(wwCreateCommonButton(RecordViewForm, bkCancel));<br />            CancelBtn.Parent := ButtonPanel;<br />            CancelBtn.visible:= True;<br />            CancelBtn.OnClick := CancelBtnClick;<br />            CancelBtn.TabStop:= True; <strong><em>//I hack</em></strong><br />            CancelBtn.Cancel:= False; { Allows Escape to be processed }</p>
		<p>            bottomPad := 1 + GetSystemMetrics(SM_CYDLGFRAME)*2 +8 +1;  {Win95 fix }<br />            Height := OkBtn.Top + OkBtn.height + BottomPad;</p>
		<p>            OkBtn.Top := GetSystemMetrics(SM_CYDLGFRAME) + 5;<br />            CancelBtn.Top := GetSystemMetrics(SM_CYDLGFRAME) +5;<br />         end;<br />      end;<br /><br />......</p>
<img src ="http://www.blogjava.net/antz/aggbug/70721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/antz/" target="_blank">小蚂蚁</a> 2006-09-20 10:46 <a href="http://www.blogjava.net/antz/archive/2006/09/20/70721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>