??xml version="1.0" encoding="utf-8" standalone="yes"?>久久777国产线看观看精品,久久中文字幕精品,久久精品国产一区http://m.shnenglu.com/citywanderer/category/1956.htmlzh-cnFri, 04 Jul 2008 12:48:30 GMTFri, 04 Jul 2008 12:48:30 GMT60MFC消息映射的实玎ͼ转)http://m.shnenglu.com/citywanderer/articles/14461.htmlcitywanderercitywandererWed, 01 Nov 2006 02:03:00 GMThttp://m.shnenglu.com/citywanderer/articles/14461.htmlhttp://m.shnenglu.com/citywanderer/comments/14461.htmlhttp://m.shnenglu.com/citywanderer/articles/14461.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/14461.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/14461.html阅读全文

citywanderer 2006-11-01 10:03 发表评论
]]>
Assemblyhttp://m.shnenglu.com/citywanderer/articles/9286.htmlcitywanderercitywandererSun, 02 Jul 2006 08:46:00 GMThttp://m.shnenglu.com/citywanderer/articles/9286.htmlhttp://m.shnenglu.com/citywanderer/comments/9286.htmlhttp://m.shnenglu.com/citywanderer/articles/9286.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/9286.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/9286.html阅读全文

citywanderer 2006-07-02 16:46 发表评论
]]>
The relation between MFC class and Resourcehttp://m.shnenglu.com/citywanderer/articles/9170.htmlcitywanderercitywandererThu, 29 Jun 2006 10:14:00 GMThttp://m.shnenglu.com/citywanderer/articles/9170.htmlhttp://m.shnenglu.com/citywanderer/comments/9170.htmlhttp://m.shnenglu.com/citywanderer/articles/9170.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/9170.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/9170.html
                                 (Figure 1-1.The Visual C++ MFC application build process. in 《inside vc.net?/span>)
From Figure1.1 above, we can see that resource.h is the bridge between MFC files and Resource file. Any an ID value in resource.h corresponds to a control.
1?/strong>If haven't Resouce file, we can also create a control by Create function. For instance:
//in .h file
CButton m_nRTButton;
//in OnInitDialog() function
m_nRTButton.Create("RunTime", WS_CHILD|WS_VISIBLE|BS_AUTO3STATE, CRect(0,0,100,20), this, 100);
virtual BOOLCreate
(
LPCTSTRlpszCaption,
DWORDdwStyle,
constRECT&rect,
CWnd*pParentWnd,
UINTnID
);
nID can be any number if you will use it later, otherwise, the id number may conflict with
others.
2?/strong>If you want to change data between a control and a variable, here are three ways as
follow:
(1):DDX_Control(…?
…?br />(2):object = (Class*)GetDlgItem(nID)
The class must derive from CWND, and the data flow just from variable to control i think
(3):Create(…?
CButton m_nRTButton;
m_nRTButton.Create("RunTime", WS_CHILD|WS_VISIBLE|BS_AUTO3STATE, CRect(0,0,100,20), this, 100);
as above.
(4):create an object of the class corresponding to a resource.
Of cource if you want to generate a modeless dialog, you must use Create function, otherwise
, you can


citywanderer 2006-06-29 18:14 发表评论
]]>
Start my network program with winpcap using C++http://m.shnenglu.com/citywanderer/articles/8868.htmlcitywanderercitywandererFri, 23 Jun 2006 03:14:00 GMThttp://m.shnenglu.com/citywanderer/articles/8868.htmlhttp://m.shnenglu.com/citywanderer/comments/8868.htmlhttp://m.shnenglu.com/citywanderer/articles/8868.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8868.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8868.html

citywanderer 2006-06-23 11:14 发表评论
]]>
Inside MFC: Handle Maps and Temporary Objectshttp://m.shnenglu.com/citywanderer/articles/8824.htmlcitywanderercitywandererThu, 22 Jun 2006 03:34:00 GMThttp://m.shnenglu.com/citywanderer/articles/8824.htmlhttp://m.shnenglu.com/citywanderer/comments/8824.htmlhttp://m.shnenglu.com/citywanderer/articles/8824.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8824.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8824.htmlhttp://www.mindfiresolutions.com/download/Inside%20MFC=Handle%20Maps%20and%20Temporary%20Objects.pdf

citywanderer 2006-06-22 11:34 发表评论
]]>
.Net2005中项目工E的配置http://m.shnenglu.com/citywanderer/articles/8786.htmlcitywanderercitywandererWed, 21 Jun 2006 08:06:00 GMThttp://m.shnenglu.com/citywanderer/articles/8786.htmlhttp://m.shnenglu.com/citywanderer/comments/8786.htmlhttp://m.shnenglu.com/citywanderer/articles/8786.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8786.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8786.htmlq里以《深入浅出MFC》中的helloE序Z?br />1、创Z个General的空目?br />2、将后缀?RC?H?CPP?ICO的文件copy到新建目录下?br />3、将q些文gd到project中去?br />4、在Project-〉Properties-〉ConfigurationProperties-〉Linker-〉System-〉Subsystem中选择WindowsQ?SubsystemQWindowsQ。(如果q里没有修改?x)生这L(fng)错误QError 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup libcmt.lib Q所有程序包括window、console{等都是从_tmainCRTStartup函数启动的,源代码可见……\Microsoft Visual Studio 8\VC\crt\src\crt0.c Line94Q程序不同_tmainCRTStartup的定义也不同。)

如果你想设断点调试的话,在C/C++-〉General-〉DebugInformationFormat中选择ProgramDatabaseQ?ziQ?/p>

citywanderer 2006-06-21 16:06 发表评论
]]>
VC调试入门(?http://m.shnenglu.com/citywanderer/articles/8777.htmlcitywanderercitywandererWed, 21 Jun 2006 02:22:00 GMThttp://m.shnenglu.com/citywanderer/articles/8777.htmlhttp://m.shnenglu.com/citywanderer/comments/8777.htmlhttp://m.shnenglu.com/citywanderer/articles/8777.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8777.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8777.html VC调试入门


作者:(x)阿荣


概述
调试是一个程序员最基本的技能,光要性甚臌q学?fn)一门语a。不?x)调试的E序员就意味着他即使会(x)一门语aQ却不能~制ZQ何好的Y件?br />q里我简要的Ҏ(gu)自己的经验列试中比较常用的技巧,希望对大家有用?br />本文U定Q在选择菜单Ӟ通过/表示分菜单Q例如File/Open表示菜单File的子菜单Open?br /> 

Z调试一个程序,首先必须使程序中包含调试信息。一般情况下Q一个从AppWizard创徏的工E中包含的Debug Configuration自动包含调试信息Q但是是不是Debug版本q不是程序包含调试信息的军_因素Q程序设计者可以在L的Configuration中增加调试信息,包括Release版本?br />Z增加调试信息Q可以按照下q步骤进行:(x)

  • 打开Project settings对话框(可以通过快捷键ALT+F7打开Q也可以通过IDE菜单Project/Settings打开)
  • 选择C/C++,Category中选择general Q则出现一个Debug Info下拉列表框,可供选择的调试信?方式包括Q?
     
    命o(h)?/b>Project settings说明
    ?/td>None没有调试信息
    /ZdLine Numbers Only目标文g或者可执行文g中只包含全局和导出符号以?qing)代码行信息Q不包含W号调试信息
    /Z7C 7.0- Compatible目标文g或者可执行文g中包含行号和所有符可试信息,包括变量名及(qing)cdQ函数及(qing)原型{?/td>
    /ZiProgram Database创徏一个程序库(PDB)Q包括类型信息和W号调试信息?/td>
    /ZIProgram Database for Edit and Continue除了前面/Zi的功能外Q这个选项允许对代码进行调试过E中的修改和l箋执行。这个选项同时?pragma讄的优化功能无?/td>

  • 选择Link,选中复选框"Generate Debug Info"Q这个选项ɘq接器把调试信息写进可执行文件和DLL
  • 如果C/C++中讄了Program Database以上的选项Q则Link incrementally可以选择。选中q个选项Q将使程序可以在上一ơ编译的基础上被~译Q即增量~译Q,而不必每ơ都从头开始编译?
断点
断点是调试器讄的一个代码位|。当E序q行到断Ҏ(gu)Q程序中断执行,回到调试器。断Ҏ(gu) 最常用的技巧。调试时Q只有设|了断点qɽE序回到调试器,才能对程序进行在U调试?br />
讄断点Q可以通过下述Ҏ(gu)讄一个断炏V首先把光标Ud到需要设|断点的代码行上Q然?
  • 按F9快捷?
  • 弹出Breakpoints对话框,Ҏ(gu)是按快捷键CTRL+B或ALT+F9Q或者通过菜单Edit/Breakpoints打开。打开后点击Break at~辑框的右侧的箭_(d)选择 合适的位置信息。一般情况下Q直接选择line xxxp够了Q如果想讄不是当前位置的断点,可以选择AdvancedQ然后填写函数、行号和可执行文件信息?
L断点Q把光标Ud到给定断Ҏ(gu)在的行,再次按F9可以取消断炏V同前面所qͼ打开Breakpoints对话框后Q也可以按照界面提示L断点?br />
条g断点Q可以ؓ(f)断点讄一个条Ӟq样的断点称为条件断炏V对于新加的断点Q可以单击Conditions按钮Qؓ(f)断点讄一个表辑ּ。当q个表达式发生改变时Q程序就 被中断。底下设|包括“观察数l或者结构的元素个数”,g可以讄一个指针所指向的内存区的大,但是我设|一个比较的g是改?范围之外的内存区g也导致断点v效。最后一个设|可以让E序先执行多次然后才到达断炏V?br />
数据断点Q数据断点只能在Breakpoints对话框中讄。选择“Data”页Q就昄了设|数据断点的对话框。在~辑框中输入一个表辑ּQ当q个 表达式的值发生变化时Q数据断点就到达。一般情况下Q这个表辑ּ应该p符和全局变量构成Q例如:(x)在编辑框中输?g_bFlagq个全局变量的名字,那么当程序中有g_bFlag= !g_bFlagӞE序将停在q个语句处?br />
消息断点QVC也支持对Windows消息q行截获。他有两U方式进行截P(x)H口消息处理函数和特定消息中断?br />在Breakpoints对话框中选择Messages,可以设|消息断炏V如果在上面那个对话框中写入消息处理函数的名字,那么 每次消息被这个函数处理,断点到达(我觉得如果采用普通断点在q个函数中截P效果应该一P。如果在底下的下?列表框选择一个消息,则每ơ这U消息到达,E序׃断?br />
?br />Watch
VC支持查看变量、表辑ּ和内存的倹{所有这些观察都必须是在断点中断的情况下q行?br />观看变量的值最单,当断点到达时Q把光标Ud到这个变量上Q停留一?x)就可以看到变量的倹{?br />VC提供一U被成ؓ(f)Watch的机制来观看变量和表辑ּ的倹{在断点状态下Q在变量上单d键,选择Quick WatchQ?弹Z个对话框Q显C个变量的倹{?br />单击Debug工具条上的Watch按钮Q就出现一个Watch视图QWatch1,Watch2,Watch3,Watch4Q,在该视图中输入变量或者表辑ּQ就可以观察 变量或者表辑ּ的倹{注意:(x)q个表达式不能有副作用,例如++q算W绝对禁止用于这个表辑ּ中,因ؓ(f)q个q算W将修改变量的|D 软g的逻辑被破坏?br />
Memory
׃指针指向的数l,W(xu)atch只能昄W一个元素的倹{ؓ(f)了显C数l的后箋内容Q或者要昄一片内存的内容Q可以用memory功能。在 Debug工具条上点memory按钮Q就弹出一个对话框Q在其中输入地址Q就可以昄该地址指向的内存的内容?b>

Varibles
Debug工具条上的Varibles按钮弹出一个框Q显C所有当前执行上下文中可见的变量的倹{特别是当前指o(h)涉及(qing)的变量,以红色显C?br />
寄存?/b>
Debug工具条上的Reigsters按钮弹出一个框Q显C当前的所有寄存器的倹{?br />
q程控制
VC允许被中断的E序l箋q行、单步运行和q行到指定光标处Q分别对应快捷键F5、F10/F11和CTRL+F10。各个快捷键功能如下Q?
 
快捷?/b>说明
F5l箋q行
F10单步Q如果涉?qing)到子函敎ͼ不进入子函数内?/td>
F11单步Q如果涉?qing)到子函敎ͼq入子函数内?/td>
CTRL+F10q行到当前光标处?/td>

Call Stack
调用堆栈反映了当前断点处函数是被那些函数按照什么顺序调用的。单击Debug工具条上的Call stack显CCall Stack对话框。在CallStack对话框中昄了一个调用系列,最上面的是当前函数Q往下依ơ是调用函数的上U函数。单击这些函数名可以跛_对应的函C厅R?br />
其他调试手段
pȝ提供一pdҎ(gu)的函数或者宏来处理Debug版本相关的信息,如下Q?

宏名/函数?/b>说明
TRACE使用Ҏ(gu)和printf完全一_(d)他在output框中输出调试信息
ASSERT它接收一个表辑ּQ如果这个表辑ּ为TRUEQ则无动作,否则中断当前E序执行。对于系l中出现q个?D的中断,应该认ؓ(f)你的函数调用未能满pȝ的调用此函数的前提条件。例如,对于一个还没有创徏的窗口调用SetWindowText{?/td>
VERIFY和ASSERT功能cMQ所不同的是Q在Release版本中,ASSERT不计输入的表达式的|而VERIFY计算表达式的倹{?/td>

x
一个好的程序员不应该把所有的判断交给~译器和调试器,应该在程序中自己加以E序保护和错误定位,具体措施包括Q?

  • 对于所有有q回值的函数Q都应该查返回|除非你确信这个函数调用绝对不?x)出错,或者不兛_它是否出错?
  • 一些函数返回错误,需要用其他函数获得错误的具体信息。例如acceptq回INVALID_SOCKET表示acceptp|Qؓ(f)了查?具体的失败原因,应该立刻用WSAGetLastError获得错误码,qҎ(gu)的解决问题?
  • 有些函数通过异常机制抛出错误Q应该用TRY-CATCH语句来检查错?
  • E序员对于能处理的错误,应该自己在底层处理,对于不能处理的,应该报告l用戯他们军_怎么处理。如果程序出了异常, 却不对返回值和其他机制q回的错误信息进行判断,只能是加大了N误的隑ֺ?
另外QVC中要~制E序不应该一开始就写cpp/h文gQ而应该首先创Z个合适的工程。因为只有这PVC才能选择合适的~译、连?选项。对于加入到工程中的cpp文gQ应该检查是否在W一行显式的包含stdafx.h头文Ӟq是Microsoft Visual StudioZ加快~译 速度而设|的预编译头文g。在q个#include "stdafx.h"行前面的所有代码将被忽略,所以其他头文g应该在这一行后面被包含?br />对于.c文gQ由于不能包含stdafx.hQ因此可以通过Project settings把它的预~译头设|ؓ(f)“不使用”,Ҏ(gu)是:(x)
  • 弹出Project settings对话?
  • 选择C/C++
  • Category选择Precompilation Header
  • 选择不用预~译?/li>


citywanderer 2006-06-21 10:22 发表评论
]]>
剖析MFC内幕http://m.shnenglu.com/citywanderer/articles/8716.htmlcitywanderercitywandererMon, 19 Jun 2006 09:51:00 GMThttp://m.shnenglu.com/citywanderer/articles/8716.htmlhttp://m.shnenglu.com/citywanderer/comments/8716.htmlhttp://m.shnenglu.com/citywanderer/articles/8716.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8716.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8716.html阅读全文

citywanderer 2006-06-19 17:51 发表评论
]]>
Windows message categorieshttp://m.shnenglu.com/citywanderer/articles/8685.htmlcitywanderercitywandererSun, 18 Jun 2006 06:19:00 GMThttp://m.shnenglu.com/citywanderer/articles/8685.htmlhttp://m.shnenglu.com/citywanderer/comments/8685.htmlhttp://m.shnenglu.com/citywanderer/articles/8685.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8685.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8685.htmlThere are three main categories:
1、Command message:
This includes WM_COMMAND notification messages from user-interface objects: menus, toolbar buttons, and accelerator keys.(digested from msdn)
for example:
 Add click event handler to menuitem about, the MFC generate automatically three lines code( macro definition: ON_COMMAND(ID_HELP_ABOUT, OnAbout) in .cpp file , event handle function: void CCapturePacketDlg::OnAbout()  in .cpp file, and event handle function's declaration: void OnAbout() in .h file), the macro ON_COMMAND(ID_HELP_ABOUT, OnAbout) depresent:  { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSigCmd_v, static_cast<AFX_PMSG> (memberFxn) }, among therm, WM_COMMAND is message id, and is also Command message.
2、Windows messages
This includes primarily those messages beginning with the WM_ prefix, except for WM_COMMAND. Windows messages are handled by windows and views. These messages often have parameters that are used in determining how to handle the message.(digested by msdn)
for example:
Add event handle function OnHotkey() witch responds to Alt + F5 to show or hide the main window. I don't kown how use MFC to add the event code automatically, so i add code into three places( macro definition: ON_MESSAGE(WM_HOTKEY, OnHotkey) in .cpp file , event handle function: LRESULT CCapturePacketDlg::OnHotkey(WPARAM wp,LPARAM lp) in .cpp file, and event handle function's declaration: LRESULT OnHotkey(WPARAM wp,LPARAM lp) in .h file). But how does the application responde to Alt + F5? we must register the hot key, so i can call API RegisterHotKey in my dialog class's OnInitDialog function.
3、Control notifications
Sorry, so far, i have used it.



citywanderer 2006-06-18 14:19 发表评论
]]>
析windowsE序http://m.shnenglu.com/citywanderer/articles/8684.htmlcitywanderercitywandererSun, 18 Jun 2006 04:05:00 GMThttp://m.shnenglu.com/citywanderer/articles/8684.htmlhttp://m.shnenglu.com/citywanderer/comments/8684.htmlhttp://m.shnenglu.com/citywanderer/articles/8684.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8684.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8684.html阅读全文

citywanderer 2006-06-18 12:05 发表评论
]]>
我的深入出MFC之\http://m.shnenglu.com/citywanderer/articles/8683.htmlcitywanderercitywandererSun, 18 Jun 2006 03:47:00 GMThttp://m.shnenglu.com/citywanderer/articles/8683.htmlhttp://m.shnenglu.com/citywanderer/comments/8683.htmlhttp://m.shnenglu.com/citywanderer/articles/8683.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8683.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8683.html 记得当初看侯先生的《深入浅出MFC》的时候,我是有一定的C++基础的,之前《windowsE序设计》也看过大部分,但是对MFCq是看得非懂似懂。最主要的原因我x理论q没有同实际l合Q只是看书,自己q没有实际的ȝCZE序Q结果就是对书中所讲的没有主观的认识,印象也就不深M?br />我本人在学校在公怸直做.net的项目,前段旉在外面接了一个网l监控的目Q也是ZWinpcap的程序,q样促我用VC++。当熟?zhn)了Winpcap之后Q我发现我必要深入MFC了?br />虽然|络上存在很多的MFC入门之内的教E,但是我觉得每个h的基不一h掌握的知识也不一Pq就注定每个人学?fn)MFC的过E是不尽相同。在介绍我学?fn)MFC之前Q我觉得我有必要提一下我具备的基以及(qing)相应的学?fn)过E:(x)
1、C++基础知识。去q的时候,从公司回到家Q租的地方)呆在房间没有事情干了,向室友借了一本机械出版社的《C++E序设计》,因ؓ(f)之前有C++基础Q这个只不过是温?fn)一下,不到半个月就把那本书M一遍,书中的练?fn)也作了一些(呵呵Q还好那个时候工作不是很忙)。接着׃发不可收拾了Q有很长一D|间我都在CSDN的C/C++板块P试着回答别h的帖子,遇到自己不明白的或者是模糊的,我会(x)在网上找资料Q查看《C++Primer》,直到q个知识Ҏ(gu)懂ؓ(f)止。期间看了《高质量C++~程指南》、《C++Primer》,对内存分配、指针、数l、复杂的变量声明、结构体的对齐方式、参C递、虚拟函数等都有了较深刻的认识(见我的msnBlogQ?a >http://citywanderer.spaces.msn.comQ?br />2、英语基。在q里Z么要提英语呢Q因为我们必要查msdn、要在google中搜索源代码。我是属于哑巴英语的那种Q但׃是在公司的欧部门,目相关的文都是英文,所以阅读英文资料是没有什么问题的?br />3、WindowsE序设计基础。MFC只是一个封装体Q它的本质还是windowsE序Q所以了解windowsE序设计的基是必ȝ。在|上下蝲一个简单的windowsE序的源代码Q详见我的《解析windowsE序》)Q?只要有一个msdnQ加上你的C语言基础Q对Q这里ƈ不要C++的知识)Q用个几天的旉搞懂q个windowsE序Q包括消息机制、类型,各种l构体……)O(jin)K了。(附加API函数实现的源文g目录Q\Microsoft Visual Studio 8\VC\atlmfc\src\Q?br />4、深入浅出MFC。大家可以看看一位大虑ֆ的MFC入门教程Q?a >http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=1339Q,把它q一遍,对MFC有一个直观的认识。OKQ看完这个教E之后,你应该明白了MFC的基本框Ӟ{等Q这该死的宏DECLARE_MESSAGE_MAP()、BEGIN_MESSAGE_MAP(class,baseclass)……是什么意思啊Q要明白它,其实很简单,只有把这些宏全部展开了,详见我的文章?a id="CategoryEntryList1_EntryStoryList_Entries_ctl00_TitleUrl" href="/citywanderer/articles/8660.html">解剖MFC消息宏定?/font> 》,好了如果q个时候你能将MFC中的cR方法对应到Windows的简单程序中ȝ话,q说明你对MFC的理解已l是差不多了?br />再后来,当然你要清楚windows的各U消息了Q用classWizard、EventWizarddcd控g的事Ӟ看MFC帮你d了哪些东西,删除它们Q自己手动添加,如果效果和MFC做的一P那就恭喜你了Q我们要知道q种wizard只是帮助我们减少开发时间的工具而已Q我们只有明白了它们的本质,才能理直气壮地用它们Q不Ӟ你肯定会(x)心虚的!Q?br />再后来……哪里有q么多再后来Q我也是才学到这里而已啦?br />
希望能给各位初学MFC的看官一点帮助,我可能有些地Ҏ(gu)掉了Q大家也可以回帖询问Q我必定知而必a?/font>



citywanderer 2006-06-18 11:47 发表评论
]]>
解剖MFC自动生成的宏定义http://m.shnenglu.com/citywanderer/articles/8660.htmlcitywanderercitywandererSat, 17 Jun 2006 06:20:00 GMThttp://m.shnenglu.com/citywanderer/articles/8660.htmlhttp://m.shnenglu.com/citywanderer/comments/8660.htmlhttp://m.shnenglu.com/citywanderer/articles/8660.html#Feedback0http://m.shnenglu.com/citywanderer/comments/commentRss/8660.htmlhttp://m.shnenglu.com/citywanderer/services/trackbacks/8660.html阅读全文

citywanderer 2006-06-17 14:20 发表评论
]]>
ĻƷþ| þþ뾫Ʒҹ| þþþavרˮ| Ʒþþþa| 2019þþø456| ɫ͵͵͵þ˴ý| þ91Ʒþ91ۺ| ĻƷþþþ| þþþþþƷͼƬ| ޾Ʒ99þ| ݺɫþۺͼƬ| þþƷAV鶹| 99þþƷѾƷ| ھƷþù| ۺϾþþþþ| ԭƷ99þþƷ66| ɫ͵͵91þۺ| 鶹һ99þþþ| þɫۺҹž| þ㽶һëƬ| þó鱬Ļ| þ޾Ʒҳ| ĻƷѾþ5151| ëƬŷëƬþþ| þԾƷ| ƷۺרƬþþ | 㽶þþþþúݺɫ| ھƷ99þ| þݺҹҹavapp| ޹˾þһWWW| þþþһ| þþƷAV鶹| ŷһþ| 2021ھþþƷ| ľƷ99þù | þ¶ݺɫ| ȾþùƷ| þþƷ| re99þ6Ʒ| þ͵wcŮ| þˮav뾫Ʒ鶹|