??xml version="1.0" encoding="utf-8" standalone="yes"?>噜噜噜色噜噜噜久久,久久精品一本到99热免费,精品久久久久国产免费http://www.shnenglu.com/gcs8cn/archive/2012/02/23/166321.html李帅李帅Thu, 23 Feb 2012 05:04:00 GMThttp://www.shnenglu.com/gcs8cn/archive/2012/02/23/166321.htmlhttp://www.shnenglu.com/gcs8cn/comments/166321.htmlhttp://www.shnenglu.com/gcs8cn/archive/2012/02/23/166321.html#Feedback0http://www.shnenglu.com/gcs8cn/comments/commentRss/166321.htmlhttp://www.shnenglu.com/gcs8cn/services/trackbacks/166321.html阅读全文

李帅 2012-02-23 13:04 发表评论
]]>
B2C|站技术及(qing)长远推广高应用技?/title><link>http://www.shnenglu.com/gcs8cn/archive/2010/12/15/136492.html</link><dc:creator>李帅</dc:creator><author>李帅</author><pubDate>Wed, 15 Dec 2010 06:56:00 GMT</pubDate><guid>http://www.shnenglu.com/gcs8cn/archive/2010/12/15/136492.html</guid><wfw:comment>http://www.shnenglu.com/gcs8cn/comments/136492.html</wfw:comment><comments>http://www.shnenglu.com/gcs8cn/archive/2010/12/15/136492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gcs8cn/comments/commentRss/136492.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gcs8cn/services/trackbacks/136492.html</trackback:ping><description><![CDATA[B2C如今已经风靡互联|?可以说这是社?x)的q步,更是互联|的q步.先给大家解释下何谓B2C,B2C中的B是BusinessQ意思是企业,2则是to的谐?C是Customer,意思是消费?所以B2C是企业对消费者的?sh)子商务模?特别是在当今的时?许多大学生都创业,许多消费者都需求物h(hun)廉的商品,q消费群体都是不断一层层的博取中间差?最l才到达消费?所以互联网里每天都?x)有许多的消费者在L商品,q就需要运用一些B2C的自w推q技巧了(jin).<br>  一、企业商品联合推q技?<br>  Ҏ(gu)Q寻找些E微知名的B2C|站合作模式Q目标用L(fng)同,l营产品不同Q?把各站商品联合运作v来做?j)销q可以做到想不到的结?多多L一些可以取光的企业或商家,比如摄媄(jing)书籍专卖和数码相Z卖店合作Q数码类B2C与家庭消费类|站的合作等。在彼此的页面挂上对方的推荐商品Q也可以推出套餐?br>  如以下的一个活动:(x)<br>  从XXqXX月XX日期至XXqXX月XX?凡是只要在本站购CQ意一部笔记本?sh)脑?0元送即可获得?**购物|】提供的Ҏ(gu)牌移动硬盘(sh)?!!!<br>  在此,找联合促(j)俏商品的|站可以是单向的Q就是你L的购物网Q让它促(j)销你们的商品,而你不一定要上他们的商品。反之,如果是单向的Q那么你要找的合作对象联合推出的商品一定要它自q商品的单h你的高?br>  学习(fn)点:(x)联合?j)销的目的是销售商品、传播口与吸引x(chng)度(非流量)(j)。只要有一个目的做成即?当然q看个h,如果可以两样都得?你一定会(x)有所收获.<br>  二、赠品活?br>  Ҏ(gu)Q此cL?a ,发钱的重要技巧,与某些论坛、社区合作、博客,发多篇贴子或质量脓(chung)多少Q给多少我站的代金券{等Q同Ӟ好友重要的就是一定要让第三方|站形式规律提醒用户领代金券。可以每周或月在W三方网站公布代金券用户名单Qƈ录入数据库,直接生成我们的用户ƈ打入用户账户里代金券。在q点上的作法可以作挖掘的要远q比当当提供的多很多?br>  注意点:(x)与第三方|站的接口与数据?qing)时?gu)更新是很重要的?br>  四、注册有?br>  作法Q注册就有奖QŞ式可以是实物也可以是代金券,可以讄{Q更可以讄大奖。如果是代金券,可以直接在用h册后打入用户的帐户中Q用户可以直接在消费时用?br>  注意点:(x)有h获得?jin)大奖后一定要大力宣传Q造势q炒作?br>  五、论坛推?br>  作法Q相x(chng)的论坛里发公益性的贴子q维护不使其下沉Q也可发某一我们想重Ҏ(gu)的商品的公益性信息,q对口碑传播与关住度的提升是很好很快L(fng)Ҏ(gu)?br>  注意点:(x)<br>  1.一定要巧妙体现你的|站?qing)品牌?br>  2.贴子的标题(sh)定要有吸引力?br>  3.注意回脓(chung)Q保持脓(chung)子的zd与寿命,q其出现在W一c(din)?br>  4. 一个脓(chung)子?0个左右的论坛Cְ发送ƈl护可以了(jin)?br>  六、专题推q?br>  作法Q专门就某品某品牌攉大量地文章,可以在自q站上的资讯里天天更新十篇左右Q同Ӟ可以在选和讯、techweb{?个之内的博客开q样的专题博客。比?#8220;如何选购数码相机”博客?br>  注意点:(x)<br>  1.与论坛推送相反,q里要求文章数量多,发送的q_倒可以少点,只放在自q站上也是可以的?br>  2.如果从别的网站摘录的文章Q一定要Ҏ(gu)头换N?br>  3.文章中要加入自己|站标识的字?br>  4.文章要多重复需要突现的商品或品牌名字?br>  七、主题活?br>  作法Q我方单独或联合或赞助第三方q行zdQ比如数码网站可以搞“地球村,我们的生zȝ间?大学生摄影展”Q以吸引人气Q传递品牌ؓ(f)丅R也可以起到?j)销的目的?br>  注意点:(x)<br>  1. zd主题?qing)g展一定要与所l营的品相兟?br>  2.zd的h要与目标客L(fng)同。比如数码网站如果搞一个小学生作文大赛失M(jin)意义Q当然也起不到效果?br>  八、参与活?br>  作法Q参与到W三方D办的zd中去Q包括某|站的活动,某些?x)议Q某些会(x)展等{。Ş式上可以是活动赞助单位、奖金提供商、报名网站等{?br>  注意点:(x)<br>  1. 对第三方丑֊的活动一定要注意zd的对象与我们的目标客L(fng)体是否附合(一再重复这点,是因为电(sh)子商务网站不可以作大而空的炒作,一切动作都是ؓ(f)增加用户Q进而增加销量,q与别的|站Q特别是那些求流量的|站Ҏ(gu)上是不一P(j)<br>  2. 一定要注意费用Q争取不花钱或花可能少的钱起到最大的影响<br>  3. 如果能与?x),最好也参与q去?br><br><img src ="http://www.shnenglu.com/gcs8cn/aggbug/136492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gcs8cn/" target="_blank">李帅</a> 2010-12-15 14:56 <a href="http://www.shnenglu.com/gcs8cn/archive/2010/12/15/136492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C# 写入excel?qing)读取Excel实例http://www.shnenglu.com/gcs8cn/archive/2010/06/14/117916.html李帅李帅Mon, 14 Jun 2010 15:46:00 GMThttp://www.shnenglu.com/gcs8cn/archive/2010/06/14/117916.htmlhttp://www.shnenglu.com/gcs8cn/comments/117916.htmlhttp://www.shnenglu.com/gcs8cn/archive/2010/06/14/117916.html#Feedback0http://www.shnenglu.com/gcs8cn/comments/commentRss/117916.htmlhttp://www.shnenglu.com/gcs8cn/services/trackbacks/117916.htmlC# 写入excel?qing)读取Excel实例看到论坛里面不断有h提问关于dexcel和导入excel的相关问题。闲暇时间将我所知道的对excel的操作加以ȝQ现在共享大Ӟ希望l大家能够给大家带了(jin)一定的帮助?br>另外我们q要注意一些简单的问题1.excel文g只能存储65535行数据,如果你的数据大于65535行,那么需要将excel分割存放?jin)?.关于qQ这主要是字W设|问题?/p>

1.加蝲ExcelQ读取excel内容Q是q回值是一个DataSet

        //加蝲Excel
        public static DataSet LoadDataFromExcel(string filePath)
        {
            try
            {
                string strConn;
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称Q比如sheet2Q等{?

                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, "Sheet1");
                OleConn.Close();
                return OleDsExcle;
            }
            catch (Exception err)
            {
                MessageBox.Show("数据l定Excelp|!p|原因Q? + err.Message, "提示信息",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
        }
2.写入Excel内容Q参敎ͼ(x)excelTable是要导入excel的一个table?< type="text/JavaScript"> alimama_pid="mm_10249644_1605763_5027492"; alimama_type="f"; alimama_sizecode ="tl_1x5_8"; alimama_fontsize=12; alimama_bordercolor="FFFFFF"; alimama_bgcolor="FFFFFF"; alimama_titlecolor="0000FF"; alimama_underline=0; alimama_height=22; alimama_width=0; < src="

        public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)
        {
            Microsoft.Office.Interop.Excel.Application app =
                new Microsoft.Office.Interop.Excel.ApplicationClass();
            try
            {
                app.Visible = false;
                Workbook wBook = app.Workbooks.Add(true);
                Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
                if (excelTable.Rows.Count > 0)
                {
                    int row = 0;
                    row = excelTable.Rows.Count;
                    int col = excelTable.Columns.Count;
                    for (int i = 0; i < row; i++)
                    {
                        for (int j = 0; j < col; j++)
                        {
                            string str = excelTable.Rows[i][j].ToString();
                            wSheet.Cells[i + 2, j + 1] = str;
                        }
                    }
                }

                int size = excelTable.Columns.Count;
                for (int i = 0; i < size; i++)
                {
                    wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
                }
                //讄止弹出保存和覆盖的询问提示?C# 写入excel?qing)读取Excel实例
                app.DisplayAlerts = false;
                app.AlertBeforeOverwriting = false;
                //保存工作?< type="text/JavaScript"> alimama_pid="mm_10249644_1605763_5027492"; alimama_type="f"; alimama_sizecode ="tl_1x5_8"; alimama_fontsize=12; alimama_bordercolor="FFFFFF"; alimama_bgcolor="FFFFFF"; alimama_titlecolor="0000FF"; alimama_underline=0; alimama_height=22; alimama_width=0; < src="
                wBook.Save();
                //保存excel文g
                app.Save(filePath);
                app.SaveWorkspace(filePath);
                app.Quit();
                app = null;
                return true;
            }
            catch (Exception err)
            {
                MessageBox.Show("导出Excel出错Q错误原因:(x)" + err.Message, "提示信息",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                return false;
            }
            finally
            {
            }
        }


 

Ƣ迎收藏本文 一赯|?【C# 写入excel?qing)读取Excel实例 http://www.1qidu.com/?action-viewnews-itemid-31870?br>一赯|参考地址Q?a >http://www.1qidu.com/?action-viewnews-itemid-31870



李帅 2010-06-14 23:46 发表评论
]]>
获取CPU旉戳代?使用CPU旉戌行高_ֺ计时 http://www.shnenglu.com/gcs8cn/archive/2010/06/09/117469.html李帅李帅Wed, 09 Jun 2010 06:05:00 GMThttp://www.shnenglu.com/gcs8cn/archive/2010/06/09/117469.htmlhttp://www.shnenglu.com/gcs8cn/comments/117469.htmlhttp://www.shnenglu.com/gcs8cn/archive/2010/06/09/117469.html#Feedback4http://www.shnenglu.com/gcs8cn/comments/commentRss/117469.htmlhttp://www.shnenglu.com/gcs8cn/services/trackbacks/117469.html在Pentium以上的CPU中,提供?jin)一条机器指令RDTSCQRead Time Stamp CounterQ来dq个旉戳的数字Qƈ其保存在EDX:EAX寄存器对中。由于EDX:EAX寄存器对恰好是Win32q_下C++语言保存函数q回值的寄存器,所以我们可以把q条指o(h)看成是一个普通的函数调用。vc2003像这P(x)
inline unsigned __int64 GetTimeStampCount()
{
__asm RDTSC
}
对于vc6或者其他编译器可能不行Q因为RDTSC不被C++的内嵌汇~器直接支持Q所以我们要用_emit伪指令直接嵌入该指o(h)的机器码形式0X0F?X31Q如下:(x)
inline unsigned __int64 GetTimeStampCount()
{
__asm _emit 0x0F
__asm _emit 0x31
}

 

 

对关注性能的程序开发h员而言Q一个好的计旉件既是益友,也是良师。计时器既可以作为程序组件帮助程序员_的控制程序进E,又是一件有力的调试武器Q在有经验的E序员手里可以尽快的定E序的性能瓉Q或者对不同的算法作出有说服力的性能比较?nbsp; 
   
    在Windowsq_下,常用的计时器有两U,一U是timeGetTime多媒体计时器Q它可以提供毫秒U的计时。但q个_ֺ对很多应用场合而言q是太粗p了(jin)。另一U是QueryPerformanceCount计数器,随系l的不同可以提供微秒U的计数。对于实时图形处理、多媒体数据?hu)处理、或者实时系l构造的E序员,善用QueryPerformanceCount/QueryPerformanceFrequency是一基本功?nbsp; 
   
    本文要介l的Q是另一U直接利用Pentium   CPU内部旉戌行计时的高精度计时手Dc(din)以下讨Z要得益于《Windows囑Ş~程》一书,W?nbsp;  15-17,有兴的读者可以直接参考该书。关于RDTSC指o(h)的详l讨论,可以参考Intel产品手册。本文仅仅作抛砖之用?nbsp; 
    ?nbsp;  Intel   Pentium以上U别的CPU中,有一个称?#8220;旉戻ITime   StampQ?#8221;的部Ӟ它以64位无W号整型数的格式Q记录了(jin)自CPU上电(sh)以来所l过的时钟周期数。由于目前的CPU主频都非帔RQ因此这个部件可以达到纳U的计时精度。这个精性是上述两种Ҏ(gu)所无法比拟的?nbsp; 
   
    在Pentium以上的CPU中,提供?jin)一条机器指令RDTSCQRead   Time   Stamp   CounterQ来dq个旉戳的数字Qƈ其保存在EDX:EAX寄存器对中。由于EDX:EAX寄存器对恰好是Win32q_下C++语言保存函数q回值的寄存器,所以我们可以把q条指o(h)看成是一个普通的函数调用。像q样Q?nbsp; 
   
  inline   unsigned   __int64   GetCycleCount()  
  {  
    __asm   RDTSC  
  }  
   
  但是不行Q因为RDTSC不被C++的内嵌汇~器直接支持Q所以我们要用_emit伪指令直接嵌入该指o(h)的机器码形式0X0F?X31Q如下:(x)  
   
  inline   unsigned   __int64   GetCycleCount()  
  {  
    __asm   _emit   0x0F  
    __asm   _emit   0x31  
  }  
   
  以后在需要计数器的场合,可以像用普通的Win32   API一P调用两次GetCycleCount函数Q比较两个返回值的差,像这P(x)  
   
  unsigned   long   t;  
  t   =   (unsigned   long)GetCycleCount();  
  //Do   Something   time-intensive   ...  
  t   -=   (unsigned   long)GetCycleCount();  
   
    《Windows囑Ş~程》第15늼写了(jin)一个类Q把q个计数器封装v来。有兴趣的读者可以去参考那个类的代码。作者ؓ(f)?jin)更_的定Ӟ做了(jin)一点小的改进Q把执行RDTSC指o(h)的时_(d)通过q箋(hu)两次调用GetCycleCount函数计算出来q保存(sh)(jin)hQ以后每ơ计时结束后Q都从实际得到的计数中减掉这一段旉Q以得到更准的计时数字。但我个得这一点点改进意义不大。在我的机器上实,q条指o(h)大概花掉?jin)几十?00多个周期Q在   Celeron   800MHz的机器上Q这不过是十分之一微秒的时间。对大多数应用来_(d)q点旉完全可以忽略不计Q而对那些实要精到U秒数量U的应用来说Q这个补偿也q于_糙?jin)?nbsp; 
   
  q个Ҏ(gu)的优Ҏ(gu)Q?nbsp; 
   
  1.高精度。可以直接达到纳U的计时精度(?GHz的CPU上每个时钟周期就是一U秒Q,q是其他计时Ҏ(gu)所难以企及(qing)的?nbsp; 
   
  2.   成本低。timeGetTime   函数需要链接多媒体库winmm.libQQueryPerformance*   函数Ҏ(gu)MSDN的说明,需要硬件的支持Q虽然我q没有见q不支持的机器)(j)和KERNEL库的支持Q所以二者都只能在Windowsq_下用(关于DOSq_下的高精度计旉题,可以参考《图形程序开发h员指南》,里面有关于控制定时器8253的详l说明)(j)。但RDTSC指o(h)是一条CPU指o(h)Q凡是i386q_下Pentium以上的机器均支持Q甚x(chng)有^台的限制Q我怿i386版本UNIX和Linux下这个方法同样适用Q但没有条g试验Q,而且函数调用的开销是最的?nbsp; 
   
  3.   h和CPU主频直接对应的速率关系。一个计数相当于1/(CPU主频Hz?U,q样只要知道?jin)CPU的主频,可以直接计算出时间。这?nbsp;  QueryPerformanceCount不同Q后者需要通过QueryPerformanceFrequency获取当前计数器每U的计数ơ数才能换算成时间?nbsp; 
   
  q个Ҏ(gu)的缺Ҏ(gu)Q?nbsp; 
   
  1.现有的C/C++~译器多C直接支持使用RDTSC指o(h)Q需要用直接嵌入机器码的方式~程Q比较麻?ch)?nbsp; 
   
  2.数据抖动比较厉害。其实对M计量手段而言Q精度和E_性永q是一对矛盾。如果用低精度的timeGetTime来计Ӟ基本上每ơ计时的l果都是相同的;而RDTSC指o(h)每次l果都不一Pl常有几癄至上千的差距。这是这U方法高_ֺ本n固有的矛盾?nbsp; 
   
  关于q个Ҏ(gu)计时的最大长度,我们可以单的用下列公式计:(x)  
   
  自CPU上电(sh)以来的秒?nbsp;  =   RDTSCd的周期数   /   CPU主频速率QHzQ?nbsp; 
   
  64位无W号整数所能表辄最大数字是1.8×10^19Q在我的Celeron   800上可以计时大U?00q_(d)书中说可以在200MHz的Pentium上计?17q_(d)q个数字不知道是怎么得出来的Q与我的计算有出入)(j)。无论如何,我们大可不必兛_(j)溢出的问题?nbsp; 
   
  下面是几个小例子Q简要比较了(jin)三种计时Ҏ(gu)的用法与_ֺ  
   
  //Timer1.cpp   使用?jin)RDTSC指o(h)的Timerc?/KTimercȝ定义可以参见《Windows囑Ş~程》P15  
  //~译行:(x)CL   Timer1.cpp   /link   USER32.lib  
  #include   &ltstdio.h>  
  #include   "KTimer.h"  
  main()  
  {  
    unsigned   t;  
    KTimer   timer;  
    timer.Start();  
    Sleep(1000);  
    t   =   timer.Stop();  
    printf("Lasting   Time:   %d\n",t);  
  }  
   
  //Timer2.cpp   使用?jin)timeGetTime函数  
  //需包含&ltmmsys.h>Q但׃Windows头文仉l复杂的关系  
  //单包?amp;ltwindows.h>比较hQ)(j)  
  //~译行:(x)CL   timer2.cpp   /link   winmm.lib    
  #include   &ltwindows.h>  
  #include   &ltstdio.h>  
   
  main()  
  {  
    DWORD   t1,   t2;  
    t1   =   timeGetTime();  
    Sleep(1000);  
    t2   =   timeGetTime();  
    printf("Begin   Time:   %u\n",   t1);  
    printf("End   Time:   %u\n",   t2);  
    printf("Lasting   Time:   %u\n",(t2-t1));  
  }  
   
  //Timer3.cpp   使用?jin)QueryPerformanceCounter函数  
  //~译行:(x)CL   timer3.cpp   /link   KERNEl32.lib  
  #include   &ltwindows.h>  
  #include   &ltstdio.h>  
   
  main()  
  {  
    LARGE_INTEGER   t1,   t2,   tc;  
    QueryPerformanceFrequency(&tc);  
    printf("Frequency:   %u\n",   tc.QuadPart);  
    QueryPerformanceCounter(&t1);  
    Sleep(1000);  
    QueryPerformanceCounter(&t2);  
    printf("Begin   Time:   %u\n",   t1.QuadPart);  
    printf("End   Time:   %u\n",   t2.QuadPart);  
    printf("Lasting   Time:   %u\n",(   t2.QuadPart-   t1.QuadPart));  
  }  
   
  ////////////////////////////////////////////////  
  //以上三个CZE序都是试1U钟休眠所耗费的时?nbsp; 
  file://?试环境:(x)Celeron   800MHz   /   256M   SDRAM      
  //                     Windows   2000   Professional   SP2  
  //                     Microsoft   Visual   C++   6.0   SP5  
  ////////////////////////////////////////////////  
   
  以下是Timer1的运行结果,使用的是高精度的RDTSC指o(h)  
  Lasting   Time:   804586872  
   
  以下是Timer2的运行结果,使用的是最_糙的timeGetTime   API  
  Begin   Time:   20254254  
  End   Time:   20255255  
  Lasting   Time:   1001  
   
  以下是Timer3的运行结果,使用的是QueryPerformanceCount   API  
  Frequency:   3579545  
  Begin   Time:   3804729124  
  End   Time:   3808298836  
  Lasting   Time:   3569712  


Ƣ迎收藏本文 一赯|?【获取CPU旉戳代?使用CPU旉戌行高_ֺ计时 http://www.1qidu.com/?action-viewnews-itemid-16841?br>一赯|参考地址Q?a >http://www.1qidu.com/?action-viewnews-itemid-16841



李帅 2010-06-09 14:05 发表评论
]]>
CDC::GetDeviceCaps可用予获取打印机DC的不同参?/title><link>http://www.shnenglu.com/gcs8cn/archive/2008/11/19/67257.html</link><dc:creator>李帅</dc:creator><author>李帅</author><pubDate>Wed, 19 Nov 2008 01:52:00 GMT</pubDate><guid>http://www.shnenglu.com/gcs8cn/archive/2008/11/19/67257.html</guid><wfw:comment>http://www.shnenglu.com/gcs8cn/comments/67257.html</wfw:comment><comments>http://www.shnenglu.com/gcs8cn/archive/2008/11/19/67257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gcs8cn/comments/commentRss/67257.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gcs8cn/services/trackbacks/67257.html</trackback:ping><description><![CDATA[CDC::GetDeviceCaps可用予获取打印机DC的不同参?br><br>q样可以在开发打印报表的时候根据打印机讄参数来自动获取了(jin)?br><br>如果你开发的报表出现随着不同打印出C同效果可以用这个函数?br> <img src ="http://www.shnenglu.com/gcs8cn/aggbug/67257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gcs8cn/" target="_blank">李帅</a> 2008-11-19 09:52 <a href="http://www.shnenglu.com/gcs8cn/archive/2008/11/19/67257.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CreateMutex利用互斥对象实现U程同步实例http://www.shnenglu.com/gcs8cn/archive/2008/11/15/67003.html李帅李帅Sat, 15 Nov 2008 09:04:00 GMThttp://www.shnenglu.com/gcs8cn/archive/2008/11/15/67003.htmlhttp://www.shnenglu.com/gcs8cn/comments/67003.htmlhttp://www.shnenglu.com/gcs8cn/archive/2008/11/15/67003.html#Feedback0http://www.shnenglu.com/gcs8cn/comments/commentRss/67003.htmlhttp://www.shnenglu.com/gcs8cn/services/trackbacks/67003.html#include <windows.h>
#include <iostream.h>

DWORD WINAPI Fun1Proc(LPVOID lpParameter);
DWORD WINAPI Fun2Proc(LPVOID lpParameter);

int index=0;
int tickets=100;
HANDLE hMutex;
void main()
{

    HANDLE hThread1,hThread2;
    hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
    hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
    CloseHandle(hThread1);
    CloseHandle(hThread2);
   
    hMutex=CreateMutex(NULL,FALSE,NULL);
    //TRUE代表ȝE拥有互斥对?但是ȝE没有释放该对象  互斥对象谁拥?谁释?br>    //FLASE代表当前没有U程拥有q个互斥对象

    Sleep(4000);

}

DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{
    while (true)
    {
        WaitForSingleObject(hMutex,INFINITE);
        if (tickets>0)
        {
            cout<<"t1: "<<tickets--<<endl;
       
        }
        else
        {
            break;
        }
        ReleaseMutex(hMutex);
    }

    return 0;
}

DWORD WINAPI Fun2Proc(LPVOID lpParameter)
{
    while (true)
    {
        WaitForSingleObject(hMutex,INFINITE);
        if (tickets>0)
        {
            cout<<"t2: "<<tickets--<<endl;
        }
        else
        {
            break;
        }
        ReleaseMutex(hMutex);
    }

    return 0;
}
此信息来自〖Y工吧论坛http://www.gcs8.cn?br>查看原网址:http://www.gcs8.cn/htm_data/2/0811/15807.html



李帅 2008-11-15 17:04 发表评论
]]>
转的一个WIN32SDKE序框架demohttp://www.shnenglu.com/gcs8cn/archive/2008/11/11/66583.html李帅李帅Tue, 11 Nov 2008 02:42:00 GMThttp://www.shnenglu.com/gcs8cn/archive/2008/11/11/66583.htmlhttp://www.shnenglu.com/gcs8cn/comments/66583.htmlhttp://www.shnenglu.com/gcs8cn/archive/2008/11/11/66583.html#Feedback0http://www.shnenglu.com/gcs8cn/comments/commentRss/66583.htmlhttp://www.shnenglu.com/gcs8cn/services/trackbacks/66583.html#include <windows.h>
#include<windowsx.h>

BOOL Cls_OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct)
{
    MessageBox(NULL,"使用消息分流器创建窗口成?,"ddd",MB_OK); 
    return 1;
}

LRESULT CALLBACK WinProc(HWND hwnd,
                         UINT msg,
                         WPARAM wparam,
                         LPARAM lparam)
{
    switch(msg)
    {
        case WM_CREATE:
            return HANDLE_WM_CREATE(hwnd, wparam, lparam, Cls_OnCreate);
        case WM_CLOSE:
            DestroyWindow(hwnd);
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hwnd, msg, wparam, lparam);
    }

    //q里可以输入响应消息的代?br>    return 0;
}


int WINAPI WinMain(HINSTANCE hinstance,
                   HINSTANCE hprevinstance,
                   LPSTR lpcmdline,
                   int ncmdshow)
{
    HWND hWnd;
    MSG msg;     
    WNDCLASSEX wndclass; 
    wndclass.cbSize=sizeof(WNDCLASSEX);
    wndclass.style=CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc=(WNDPROC) WinProc;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hInstance = hinstance;   
    wndclass.hIcon = LoadIcon(NULL,IDI_ERROR);
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = "WINCLASS1";
    wndclass.hIconSm = LoadIcon(wndclass.hInstance, (LPCTSTR)IDI_ERROR);
    wndclass.lpszMenuName = NULL;
    wndclass.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH);
    wndclass.lpszClassName ="WINCLASS1";
   

    if (!RegisterClassEx(&wndclass))
    {
        MessageBox(NULL,"ddd","ddd",MB_OK); 
         return 0;
    }    //    //……

    hWnd=CreateWindowEx(NULL,"WINCLASS1",
        "wndtitle",
        WS_OVERLAPPEDWINDOW|WS_VISIBLE ,       
        CW_USEDEFAULT, 0,
        400,400,
        NULL,
        NULL,
        hinstance,
        NULL );
    if (!hWnd)
            return 0;   
    ShowWindow(hWnd, ncmdshow);
    UpdateWindow(hWnd);
    while(GetMessage(&msg, NULL, 0, 0)) 
    {     
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    }
   
    return msg.wParam;
}

转帖注明来自软工吧论?br>此信息来自〖Y工吧论坛http://www.gcs8.cn?br>查看原网址:http://www.gcs8.cn/htm_data/2/0811/15785.html



李帅 2008-11-11 10:42 发表评论
]]>
C++接口的定义用一个实例说?/title><link>http://www.shnenglu.com/gcs8cn/archive/2008/11/10/66482.html</link><dc:creator>李帅</dc:creator><author>李帅</author><pubDate>Mon, 10 Nov 2008 01:44:00 GMT</pubDate><guid>http://www.shnenglu.com/gcs8cn/archive/2008/11/10/66482.html</guid><wfw:comment>http://www.shnenglu.com/gcs8cn/comments/66482.html</wfw:comment><comments>http://www.shnenglu.com/gcs8cn/archive/2008/11/10/66482.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gcs8cn/comments/commentRss/66482.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gcs8cn/services/trackbacks/66482.html</trackback:ping><description><![CDATA[  接口是一个没有被实现的特D的c,它是一pd操作的集合,我们可以把它看作是与其他对象通讯的协议。C++中没有提供类似interfaceq样的关?字来定义接口Q但是Mircrosoft c++中提供了(jin)__declspec(novtable)来修C个类Q来表示该类没有虚函数表Q也是虚函数都是纯虚的。所以利用它我们依然可以定义一 个接口。代码例子如下:(x) <p> </p> <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: rgb(230,230,230) 0% 50%; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"> <div><span style="COLOR: rgb(0,0,0)">#include </span><span style="COLOR: rgb(0,0,0)"><</span><span style="COLOR: rgb(0,0,0)">IOSTREAM</span><span style="COLOR: rgb(0,0,0)">></span><span style="COLOR: rgb(0,0,0)"><br></span><span style="COLOR: rgb(0,0,255)">using</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">namespace</span><span style="COLOR: rgb(0,0,0)"> std;<br><br></span><span style="COLOR: rgb(0,0,255)">#define</span><span style="COLOR: rgb(0,0,0)"> interface class __declspec(novtable)</span><span style="COLOR: rgb(0,0,0)"><br><br></span><span style="COLOR: rgb(0,0,255)">interface</span><span style="COLOR: rgb(0,0,0)"> ICodec<br>{<br></span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)">:<br>    </span><span style="COLOR: rgb(0,0,255)">virtual</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">bool</span><span style="COLOR: rgb(0,0,0)"> Decode(</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataSrc,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> nSrcLen,</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataDst,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)">pnDstLen);<br>    </span><span style="COLOR: rgb(0,0,255)">virtual</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">bool</span><span style="COLOR: rgb(0,0,0)"> Encode(</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataSrc,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> nSrcLen,</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataDst,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)">pnDstLen);<br>};<br><br></span><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)"> CCodec : </span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> ICodec<br>{<br></span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)">:<br>    </span><span style="COLOR: rgb(0,0,255)">virtual</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">bool</span><span style="COLOR: rgb(0,0,0)"> Decode(</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataSrc,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> nSrcLen,</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataDst,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)">pnDstLen)<br>     {<br>         cout </span><span style="COLOR: rgb(0,0,0)"><<</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">解码...</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)"><<</span><span style="COLOR: rgb(0,0,0)"> endl;<br>        </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">;<br>     }<br>    </span><span style="COLOR: rgb(0,0,255)">virtual</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">bool</span><span style="COLOR: rgb(0,0,0)"> Encode(</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataSrc,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> nSrcLen,</span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> lpDataDst,unsigned </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)">pnDstLen)<br>     {<br>         cout </span><span style="COLOR: rgb(0,0,0)"><<</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">~码...</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)"><<</span><span style="COLOR: rgb(0,0,0)"> endl;<br>        </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">;<br>     }<br>};<br><br></span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> main(</span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> argc, </span><span style="COLOR: rgb(0,0,255)">char</span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> argv[])<br>{<br>     ICodec </span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)"> pCodec </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> CCodec();<br>     pCodec</span><span style="COLOR: rgb(0,0,0)">-></span><span style="COLOR: rgb(0,0,0)">Decode(NULL,</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">,NULL,NULL);<br>     pCodec</span><span style="COLOR: rgb(0,0,0)">-></span><span style="COLOR: rgb(0,0,0)">Encode(NULL,</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">,NULL,NULL);<br>     delete (CCodec</span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)">)pCodec;<br>    </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">;<br>}<br></span></div> </div> <p> </p> <pre>上面的ICodec接口{h(hun)于下面的定义Q?/pre> <pre><span id="3nlvflf" class=keyword> <div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: rgb(230,230,230) 0% 50%; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"> <div style="COLOR: red">class ICodec<br>{<br>public:<br>    virtual bool Decode(char * lpDataSrc,unsigned int nSrcLen,char * lpDataDst,unsigned int *pnDstLen)=0;<br>    virtual bool Encode(char * lpDataSrc,unsigned int nSrcLen,char * lpDataDst,unsigned int *pnDstLen)=0;<br>};</div> </div> </span></pre> <img src ="http://www.shnenglu.com/gcs8cn/aggbug/66482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gcs8cn/" target="_blank">李帅</a> 2008-11-10 09:44 <a href="http://www.shnenglu.com/gcs8cn/archive/2008/11/10/66482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Platform SDK下蝲地址http://www.shnenglu.com/gcs8cn/archive/2008/11/08/66345.html李帅李帅Sat, 08 Nov 2008 09:13:00 GMThttp://www.shnenglu.com/gcs8cn/archive/2008/11/08/66345.htmlhttp://www.shnenglu.com/gcs8cn/comments/66345.htmlhttp://www.shnenglu.com/gcs8cn/archive/2008/11/08/66345.html#Feedback0http://www.shnenglu.com/gcs8cn/comments/commentRss/66345.htmlhttp://www.shnenglu.com/gcs8cn/services/trackbacks/66345.html

Ҏ(gu)微Y的说?Visual C++ 6.0 支持的最后一个SDK?Windows Server 2003 PSDK 版本,q运的是在网上也扑ֈ?XPSP2 PSDK 版本,在这里感谢网友发现的下蝲地址:

Platform SDK XPSP2:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm

Platform SDK February 2003:

http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm



李帅 2008-11-08 17:13 发表评论
]]>
关于C++中RTTI的编码实?/title><link>http://www.shnenglu.com/gcs8cn/archive/2008/11/07/66241.html</link><dc:creator>李帅</dc:creator><author>李帅</author><pubDate>Fri, 07 Nov 2008 13:44:00 GMT</pubDate><guid>http://www.shnenglu.com/gcs8cn/archive/2008/11/07/66241.html</guid><wfw:comment>http://www.shnenglu.com/gcs8cn/comments/66241.html</wfw:comment><comments>http://www.shnenglu.com/gcs8cn/archive/2008/11/07/66241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gcs8cn/comments/commentRss/66241.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gcs8cn/services/trackbacks/66241.html</trackback:ping><description><![CDATA[<div><strong><font color=#ac0000>摘要Q?br><br></font></strong>  RTTI(Run-Time Type Identification)是面向对象程序设计中一U重要的技术。现行的C++标准对RTTI已经有了(jin)明确的支持。不q在某些情况下出于特D的开发需要,我们需要自q码来实现。本文介l了(jin)一些关于RTTI的基知识?qing)其原理和实现。  <br><br><strong><font color=#ac000>RTTI需求:(x)</font></strong><br><br>  和很多其他语a一PC++是一U静(rn)态类型语a。其数据cd是在~译期就定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求QC++中的指针或引?Reference)本n的类型,可能与它实际代表(指向或引?的类型ƈ不一致。有时我们需要将一个多态指针{换ؓ(f)其实际指向对象的cdQ就需要知道运行时的类型信息,q就产生?jin)运行时cd识别的要求?br><br>  <strong><font color=#ac000>C++对RTTI的支?/font>Q?/strong><br><br>  C++提供?jin)两个关键字typeid和dynamic_cast和一个type_infocL支持RTTIQ?br><br>  <strong>dynamic_cast操作W:(x)</strong>它允许在q行时刻q行cd转换Q从而ɽE序能够在一个类层次l构安全地{换类型。dynamic_cast提供?jin)两U{换方式,把基cL针{换成zcL针,或者把指向基类的左D{换成zcȝ引用。见下例讲述Q?br><br>void company::payroll(employee *pe) {<br>//Ҏ(gu)针{换失败,dynamic_castq回NULL<br>if(programmer *pm=dynamic_cast(pe)){<br>pm->bonus();<br>}<br>}<br>void company::payroll(employee &re) {<br>try{<br>//对引用{换失败的话,则会(x)以抛出异常来报告错误<br>programmer &rm=dynamic_cast(re);<br>pm->bonus();<br>}<br>catch(std::bad_cast){<br><br>}<br>}<br><br>  q里bonus是programmer的成员函敎ͼ基类employee不具备这个特性。所以我们必M用安全的由基cdzcȝ型{换,识别出programmer指针?br><br>  <strong>typeid操作W:(x)</strong>它指出指针或引用指向的对象的实际zcd?br><br>  例如Q?br><br>employee* pe=new manager;<br>typeid(*pe)==typeid(manager) //true<br>  typeid可以用于作用于各U类型名Q对象和内置基本数据cd的实例、指针或者引用,当作用于指针和引用将q回它实际指向对象的cd信息。typeid的返回是type_infocd?br><br>  type_infoc:(x)q个cȝ切定义是与~译器实现相关的Q下面是《C++ Primer》中l出的定?参考资料[2]中谈到编译器必须提供的最信息量)Q?br><br>class type_info {<br>private:<br>type_info(const type_info&);<br>type_info& operator=( const type_info& );<br>public:<br>virtual ~type_info();<br>int operator==( const type_info& ) const;<br>int operator!=( const type_info& ) const;<br>const char* name() const;<br>};<br><strong> <font color=#ac000>实现目标Q?/font><br><br></strong>  <strong>实现的方?/strong><br><br>  <strong>Ҏ(gu)一Q利用多态来取得指针或应用的实际cd信息</strong><br><br>  q是一个最单的Ҏ(gu)Q也是作者目前所采用的办法?br><br>  实现Q?br><br>enum ClassType{<br>UObjectClass,<br>URectViewClass,<br>UDialogClass,<br>……<br>};<br>class UObject{<br>virtual char* GetClassName() const {<br>return "UObject";<br>};<br>virtual ClassType TypeOfClass(){<br>return UObjectClass;<br>};<br>};<br>class UDialog{<br>virtual char* GetClassName() const {<br>return "UDialog";<br>};<br>virtual ClassType TypeOfClass(){<br>return UDialogClass;<br>};<br>};<br>  CZQ?br><br>UObject po=new UObject;<br>UObject pr=new URectView;<br>UObject pd=new UDialog;<br>cout << "po is a " << po->GetClassName() << endl;<br>cout << "pr is a " << pr->GetClassName() << endl;<br>cout << "pd is a " << pd->GetClassName() << endl;<br>cout<TypeOfClass()==UObjectClass<</div> <img src ="http://www.shnenglu.com/gcs8cn/aggbug/66241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gcs8cn/" target="_blank">李帅</a> 2008-11-07 21:44 <a href="http://www.shnenglu.com/gcs8cn/archive/2008/11/07/66241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.net901.cn" target="_blank">þþܳ</a>| <a href="http://www.bxzpzlb.cn" target="_blank">Ʒþþ</a>| <a href="http://www.xwgqzp.cn" target="_blank">պһþ99</a>| <a href="http://www.rydtw.cn" target="_blank">޹ƷۺϾþ </a>| <a href="http://www.icrms.org.cn" target="_blank">þAVվ</a>| <a href="http://www.wshoponlinet.cn" target="_blank">㽶þ99</a>| <a href="http://www.innas.cn" target="_blank">ۺϾþϵ</a>| <a href="http://www.jipiaocq.cn" target="_blank">þav߳avav紵</a>| <a href="http://www.mtdo.cn" target="_blank">ձþþþĻ</a>| <a href="http://www.arouk.cn" target="_blank">ƷŷƬþùŷ</a>| <a href="http://www.janl.cn" target="_blank">ƷþþĻ</a>| <a href="http://www.ls63.cn" target="_blank">Ʒ˾þþþҹӰ</a>| <a href="http://www.hedv.com.cn" target="_blank">ɫþþۺľþһ</a>| <a href="http://www.qushouji.cn" target="_blank">ޡvþþ뾫Ʒ</a>| <a href="http://www.u2860.cn" target="_blank">þþþþùƷ</a>| <a href="http://www.qi-pin.cn" target="_blank">AVþüįٸ</a>| <a href="http://www.cqbus.com.cn" target="_blank">þ99Ʒ </a>| <a href="http://www.ntysjx.cn" target="_blank">99þù޸ۿ2024 </a>| <a href="http://www.w4749.cn" target="_blank">www.þ</a>| <a href="http://www.hotsw.com.cn" target="_blank">ƷۺϾþþþþ97</a>| <a href="http://www.0r2kd.cn" target="_blank">þѴƬ</a>| <a href="http://www.hnyongsheng.cn" target="_blank">þŷձƷ</a>| <a href="http://www.dj400.cn" target="_blank">޾ƷþþӰԺӰƬ </a>| <a href="http://www.tomp3.cn" target="_blank">þ޾Ʒһ </a>| <a href="http://www.jia-hua.cn" target="_blank">þþþþaëƬ</a>| <a href="http://www.tvauto.cn" target="_blank">Ժձһձþ </a>| <a href="http://www.etcaisn.cn" target="_blank">99ƷþþƷһ</a>| <a href="http://www.seo30.cn" target="_blank">þþƷAVɫ</a>| <a href="http://www.gkvw.cn" target="_blank">þþþ޾ƷĻ</a>| <a href="http://www.jrchen.cn" target="_blank">þav</a>| <a href="http://www.kzwn.net.cn" target="_blank">˾þô߽ۺAv </a>| <a href="http://www.esog.com.cn" target="_blank">ձþþվ</a>| <a href="http://www.3lr9a.cn" target="_blank">AŮAVۺϾþþ</a>| <a href="http://www.500866.cn" target="_blank">þҹӰ</a>| <a href="http://www.xiaomaidou.cn" target="_blank">þþþӰԺ</a>| <a href="http://www.loveclap.cn" target="_blank">ˬˬƬaþ</a>| <a href="http://www.xinjian452858.cn" target="_blank">þѾƷav</a>| <a href="http://www.cngit13.cn" target="_blank">þþþþùƷ볬</a>| <a href="http://www.bihuresorthotel.cn" target="_blank">ŷһþþƷ</a>| <a href="http://www.dntjj.cn" target="_blank">þþþòҰ¸߳</a>| <a href="http://www.jianzhuhr.net.cn" target="_blank">ŷ˾þþƷ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>