??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲精品无码AV红樱桃,亚洲欧美另类日本久久国产真实乱对白,九九精品久久久久久噜噜http://www.shnenglu.com/luqingfei/category/14142.html<font color='gray'>Z华之崛v而崛P</font><br/> 兼听则明Q偏听则暗? zh-cnMon, 15 Jul 2013 09:52:46 GMTMon, 15 Jul 2013 09:52:46 GMT60使用lib.exe生成.lib文ghttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201817.htmlluqingfeiluqingfeiMon, 15 Jul 2013 07:34:00 GMThttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201817.htmlhttp://www.shnenglu.com/luqingfei/comments/201817.htmlhttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201817.html#Feedback0http://www.shnenglu.com/luqingfei/comments/commentRss/201817.htmlhttp://www.shnenglu.com/luqingfei/services/trackbacks/201817.html

在程序用Dll有两个加载方式,一U是动态方式,是LoadLibrary载入Dll,然后用GetProcAddress来加载需要用的Dll函数。另一U就是静态连接方式,dll生成的libQ加入到工程中,然后可以很方便的调用?/p>

我们知道很多dll在发布时不提供libQ没有lib我们׃能静态的加蝲Q所以得惛_法来生成一个libQ在vs2005中有q样的一个命?/p>

不过我们q需要一个def文gQ怎样来获得一个def文g哪?

我们知道def是一个库导出文g 单的格式是:EXPORTS  ?一些导出函?/p>

我们可以用vc6自带的一个depends来查看dll中有哪些导出函数Q来手动做一?def文g

 

xxx.dll和xxx.defQ放C个文件夹中,启动“Visual Studio 2005 命o提示”

工作目录切换到放有xxx.dll和xxx.def的文件夹中输入:

lib /def:xxx.def /MACHINE:x86

q样会产生一个xxx.lib了,此lib文g和dll文g拷到工程中,可以进行静态链接了



luqingfei 2013-07-15 15:34 发表评论
]]>
如何区分导入库和静态库http://www.shnenglu.com/luqingfei/archive/2013/07/15/201816.htmlluqingfeiluqingfeiMon, 15 Jul 2013 07:32:00 GMThttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201816.htmlhttp://www.shnenglu.com/luqingfei/comments/201816.htmlhttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201816.html#Feedback0http://www.shnenglu.com/luqingfei/comments/commentRss/201816.htmlhttp://www.shnenglu.com/luqingfei/services/trackbacks/201816.html通过命o >lib /list Demo.lib
如果?Demo.lib是静态库Q输出如下:
>lib /list Demo.lib
Microsoft (R) Library Manager Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
.\Debug\Demo.obj
.\Debug\Person.obj
.\Debug\stdafx.obj
.\Debug\Demo.res
如果?Demo.lib是导入库Q输出如下:
>lib /list Demo.lib
Microsoft (R) Library Manager Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.
Demo.dll
Demo.dll
Demo.dll
Demo.dll
Demo.dll
Demo.dll
Demo.dll


转:http://blog.sina.com.cn/s/blog_611b75a80100emow.html


luqingfei 2013-07-15 15:32 发表评论
]]>
lib文ghttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201815.htmlluqingfeiluqingfeiMon, 15 Jul 2013 07:25:00 GMThttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201815.htmlhttp://www.shnenglu.com/luqingfei/comments/201815.htmlhttp://www.shnenglu.com/luqingfei/archive/2013/07/15/201815.html#Feedback0http://www.shnenglu.com/luqingfei/comments/commentRss/201815.htmlhttp://www.shnenglu.com/luqingfei/services/trackbacks/201815.html.lib是一U文件名后缀
该文件ؓWindows操作pȝ中的库文Ӟ相当于Linux中的.a?o?so文g
lib有静态lib和动态lib之分?/div>
lib文g通过~译才可以用编译分静态与动态之分?/div>
静态编?/div>
静态lib导出声明和实现都放在lib中。编译后所有代码都嵌入到宿ȝ?/div>
动态编?/div>
动态lib相当于一个h文gQ是对实现部分(.dll文gQ的导出部分的声明。编译后只是导出声明部分编译到宿主E序中,q行时候需要相应的dll文g支持
一个lib文g是obj文g的集合。当Ӟ其中q夹杂着其他一些辅助信息,目的是ؓ了让~译器能够准找到对应的obj文g。我们可以通过tlib.exeQ在tc2.0下的根目录)来对lib文gq行操作Q你可以把自q成的obj文g通过tlib命o加入C个lib文g中,也可以把lib文g内的obj文gq行删除操作Q还可以把内部的obj文gl提取出来。明白了lib文g的大致结构以及对它的具体操作Q在学习(fn)C语言的过E中Q就会又多了一个切入点对C语言具体实现q行研究?/div>
与dll区别
(1)lib是编译时需要的Qdll是运行时需要的?/div>
如果要完成源代码的编译,有lib够了?/div>
如果也动态连接的E序q行hQ有dll够了?/div>
在开发和调试阶段Q当然最好都有?/div>
(2)一般的动态库E序有lib文g和dll文g。lib文g是必d~译期就q接到应用程序中的,而dll文g是运行期才会被调用的。如果有dll文gQ那么对应的lib文g一般是一些烦引信息,具体的实现在dll文g中。如果只有lib文gQ那么这个lib文g是静态编译出来的Q烦引和实现都在其中。静态编译的lib文g有好处:l用户安装时׃需要再挂动态库了。但也有~点Q就是导致应用程序比较大Q而且失去了动态库的灵zL,在版本升U时Q同时要发布新的应用E序才行?/div>
(3)在动态库的情况下Q有两个文gQ一个是引入库(.LIBQ文Ӟ一个是DLL文gQ引入库文g包含被DLL导出的函数的名称和位|,DLL包含实际的函数和数据Q应用程序用LIB文g链接到所需要用的DLL文gQ库中的函数和数据ƈ不复制到可执行文件中Q因此在应用E序的可执行文g中,存放的不是被调用的函C码,而是DLL中所要调用的函数的内存地址Q这样当一个或多个应用E序q行是再把程序代码和被调用的函数代码链接hQ从而节省了内存资源。从上面的说明可以看出,DLL文g必须随应用程序一起发行,否则应用E序会产生错误?/div>


luqingfei 2013-07-15 15:25 发表评论
]]>[转]动态链接库、静态库、import库区?/title><link>http://www.shnenglu.com/luqingfei/archive/2013/07/14/201792.html</link><dc:creator>luqingfei</dc:creator><author>luqingfei</author><pubDate>Sun, 14 Jul 2013 07:11:00 GMT</pubDate><guid>http://www.shnenglu.com/luqingfei/archive/2013/07/14/201792.html</guid><wfw:comment>http://www.shnenglu.com/luqingfei/comments/201792.html</wfw:comment><comments>http://www.shnenglu.com/luqingfei/archive/2013/07/14/201792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/luqingfei/comments/commentRss/201792.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/luqingfei/services/trackbacks/201792.html</trackback:ping><description><![CDATA[<div><strong style="font-size: 14pt;">动态链接库、静态库、import库区?/strong></div><div></div><div><strong>动态链接库(Dynamic Linked Library)Q?/strong></div><div>Windows为应用程序提供了丰富的函数调用,q些函数调用都包含在动态链接库中。其中有3个最重要的DLLQKernel32.dllQ它包含用于理内存、进E和U程的各个函敎ͼ</div><div></div><div>User32.dllQ它包含用于执行用户界面d(如窗口的创徏和消息的传?的各个函敎ͼGDI32.dllQ它包含用于d和显C文本的各个函数?/div><div></div><div><strong>静态库(Static Library)Q?/strong></div><div>函数和数据被~译q一个二q制文g(通常扩展名ؓ.LIB)。在使用静态库的情况下Q在~译链接可执行文件时Q链接器从库中复制这些函数和数据q把它们和应用程序的其它模块</div><div></div><div>l合h创徏最l的可执行文?.EXE文g)?/div><div></div><div><strong>导入?Import Library)Q?/strong></div><div>在用动态链接库的时候,往往提供两个文gQ一个引入库和一个DLL。引入库包含被DLL导出的函数和变量的符号名QDLL包含实际的函数和数据。在~译链接可执行文件时Q只需</div><div></div><div>要链接引入库QDLL中的函数代码和数据ƈ不复制到可执行文件中Q在q行的时候,再去加蝲DLLQ访问DLL中导出的函数?/div><div></div><div>在运行W(xu)indowsE序Ӟ它通过一个被UC“动态链?#8221;的进E与Windows相接。一个Windows?EXE文g拥有它用不同动态链接库的引用,所使用的函数即在那里。当WindowsE?/div><div></div><div>序被加蝲到内存中ӞE序中的调用被指向DLL函数的入口,如果DLL不在内存中,pȝ将其加载到内存中?/div><div></div><div>当链接WindowsE序以生一个可执行文gӞ你必链接由~程环境提供的专门的“导入?import library)?#8221;。这些导入库包含了动态链接库名称和所有Windows函数调用?/div><div></div><div>引用信息。链接程序用该信息?EXE文g中构造一个表Q当加蝲E序ӞW(xu)indows使用它将调用转换为Windows函数?br /></div><div></div><div><strong>静态库与导入库的区别:</strong></div><div>导入库和静态库的区别很大,他们实质是不一L(fng)东西。静态库本n包含了实际执行代码、符可{等Q而对于导入库而言Q其实际的执行代码位于动态库中,导入库只包含?/div><div></div><div>地址W号表等Q确保程序找到对应函数的一些基本地址信息?br /></div><div></div><div></div><div><strong>静态链接与动态链接:</strong></div><div></div><div>静态链接方法:#pragma comment(lib, "test.lib") Q静态链接的时候,载入代码׃把程序会用到的动态代码或动态代码的地址定下来</div><div>静态库的链接可以用静态链接,动态链接库也可以用这U方法链接导入库</div><div></div><div>动态链接方法:LoadLibrary()/GetProcessAddress()和FreeLibrary()Q用这U方式的E序q不在一开始就完成动态链接,而是直到真正调用动态库代码Ӟ载入E序才计?被调用的那部?动态代码的逻辑地址Q然后等到某个时候,E序又需要调用另外某块动态代码时Q蝲入程序又去计这部分代码的逻辑地址Q所以,q种方式使程序初始化旉较短Q但q行期间的性能比不上静态链接的E序?/div><div></div><div>在Y件开发的q程中,大家l常会或多或的使用别h~写的或者系l提供的动态库或静态库Q但是究竟是使用静态库q是动态库呢?他们的适用条g是什么呢Q?/div><div> </div><div>单的_静态库和应用程序编译在一P在Q何情况下都能q行Q而动态库是动态链接,֐思义是在应用程序启动的时候才会链接,所以,当用L(fng)pȝ上没有该动态库Ӟ应用E序׃q行p|。再看它们的特点Q?/div><div>动态库Q?/div><div>1.׃nQ多个应用程序可以用同一个动态库Q启动多个应用程序的时候,只需要将动态库加蝲到内存一ơ即可;</div><div>2.开发模块好Q要求设计者对功能划分的比较好?/div><div> </div><div>静态库Q代码的装蝲速度快,执行速度也比较快Q因为编译时它只会把你需要的那部分链接进去,应用E序相对比较大。但是如果多个应用程序用的话,会被装蝲多次Q浪费内存?/div><div> </div><div>MQ我个h认ؓQ如果你的系l上有多个应用程序都使用该库的话Q就把它~译?strong>动态库</strong>Q这栯然刚启动的时候加载比较慢Q但是多d的时候会比较节省内存Q如果你的系l上只有一C个应用用该库,q且使用的API比较?yu)的话,q译成静态库吧,一般的静态库q可以进行裁剪编译,q样应用E序可能会比较大Q但是启动的速度会大大提高?/div><div> </div><div>呵呵Q个人的一些心得,不之处Q欢q指出!<br />转自Q?a >http://www.cnblogs.com/kex1n/archive/2011/09/06/2168435.html<br /><br /></a></div><img src ="http://www.shnenglu.com/luqingfei/aggbug/201792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/luqingfei/" target="_blank">luqingfei</a> 2013-07-14 15:11 <a href="http://www.shnenglu.com/luqingfei/archive/2013/07/14/201792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows环境变量讄http://www.shnenglu.com/luqingfei/archive/2010/06/27/118823.htmlluqingfeiluqingfeiSun, 27 Jun 2010 07:19:00 GMThttp://www.shnenglu.com/luqingfei/archive/2010/06/27/118823.htmlhttp://www.shnenglu.com/luqingfei/comments/118823.htmlhttp://www.shnenglu.com/luqingfei/archive/2010/06/27/118823.html#Feedback0http://www.shnenglu.com/luqingfei/comments/commentRss/118823.htmlhttp://www.shnenglu.com/luqingfei/services/trackbacks/118823.html       W一U是在命令提C符q行H口中设|;
       W二U是通过单击“我的?sh)?#8594;属?#8594;高”标签?#8220;环境变量”按钮讄?br>需要注意的是,W一U设|环境变量的方式只对当前q行H口有效Q关闭运行窗口后Q设|就不v作用了,而第二种讄环境变量的方式则是永久有效?br> 

  ?#8220;开?#8594;q行”框中输入“cmd”后按“定”按钮Q出现命令运行窗口?br>在命令提C符下输?#8220;set”卛_查看环境变量讄?br>要查看具体某个环境变量的讄Q比如要查看path环境变量的设|,可以输入“set path”?br>要创Z个环境变量,比如要创Z个名为aa的,gؓ“c:”的环境变量,可以输入“set aa=c:”命o?br>而要删除一个环境变量,比如要删除aa环境变量Q则可输?#8220;set aa=”命oQ注?后面不能有空|?br>
如何更改一个环境变量的讄呢?更改环境变量有两U情况:
一是追加方式,卛_不改变环境变量现有设|的情况下,增加变量的|比如要给环境变量aa增加一个gؓ“D:”的设|,可以输入“set aa=%path%;D:”?br>另一U是完全修改方式Q对于这U方式,我们可以采用直接创徏一个环境变量的Ҏ(gu)来实现?

luqingfei 2010-06-27 15:19 发表评论
]]>
[转]Windows下set命o详解 http://www.shnenglu.com/luqingfei/archive/2010/06/27/118820.htmlluqingfeiluqingfeiSun, 27 Jun 2010 05:09:00 GMThttp://www.shnenglu.com/luqingfei/archive/2010/06/27/118820.htmlhttp://www.shnenglu.com/luqingfei/comments/118820.htmlhttp://www.shnenglu.com/luqingfei/archive/2010/06/27/118820.html#Feedback0http://www.shnenglu.com/luqingfei/comments/commentRss/118820.htmlhttp://www.shnenglu.com/luqingfei/services/trackbacks/118820.html        最q想要在Windows下批量备份文件成不同的日期后~Q需要一个时间变量,于是阅了很多资料,发现可以用set命o很方便得在bat中实现。于是顺便也研究了一下set命o的详l用方法。首先来看一下set命o的官方helpQ?
 
C:\Documents and Settings\wangxiaoqi>set /?

昄、设|或删除 cmd.exe 环境变量?/span>
 
SET [variable=[string]]
 
  variable  指定环境变量名?br>  string    指定要指z变量的一pd字符丌Ӏ?
 
要显C当前环境变量,键入不带参数?SET?/span>
 
如果命o扩展名被启用QSET 会如下改?
 
可仅用一个变量激z?SET 命oQ等hg昄所有前~匚wSET 命o已用的名称的所有变量的倹{例?
 
    SET P
 
会显C所有以字母 P 打头的变?/span>
 
如果在当前环境中找不到该变量名称QSET 命o把 ERRORLEVEL讄?1?
 
SET 命o不允许变量名含有{号?/span>
 
?SET 命o中添加了两个新命令行开?
 
    SET /A expression
    SET /P variable=[promptString]
 
/A 命o行开x定等号右边的字符串ؓ被评估的数字表达式。该表达式评估器很简单ƈ以递减的优先权序支持下列操作:
 
    ()                  - 分组
    ! ~ -               - 一元运符
    * / %               - 数q算W?br>    + -                 - 数q算W?br>    << >>               - 逻辑UM
                       - 按位“?#8221;
    ^                   - 按位“?#8221;
    |                   - 按位“?#8221;
    = *= /= %= += -=    - 赋?br>      &= ^= |= <<= >>=
    ,                   - 表达式分隔符
 
如果(zhn)用Q何逻辑或取余操作符Q?(zhn)需要将表达式字W串用引hh。在表达式中的Q何非数字字符串键作ؓ环境变量名称Q这些环境变量名U的值已在用前转换成数字。如果指定了一个环境变量名Uͼ但未在当前环境中定义Q那么值将被定为零。这使?zhn)可以使用环境变量值做计算而不用键入那?% W号来得到它们的倹{如?SET /A 在命令脚本外的命令行执行的,那么它显C表达式的最后倹{该分配的操作符在分配的操作W左辚w要一个环境变量名U。除十六q制?0x 前缀Q?八进制有 0 前缀的,数字gؓ十进位数字。因此, 0x12 ?18 ?022相同。请注意八进制公式可能很Ҏ(gu)搞؜: 08 ?09 是无效的数字Q因?8 ?9 不是有效的八q制位数?
 
/P 命o行开兛_许将变量数D成用戯入的一行输入。读取输入行之前Q显C指定的 promptString。promptString 可以是空的?
 
环境变量替换已如下增?
 
    %PATH:str1=str2%
 
会扩?PATH 环境变量Q用 "str2" 代替扩展l果中的每个 "str1"。要有效C扩展l果中删除所有的 "str1"Q?str2" 可以是空的?str1" 可以以星h_在这U情况下Q?str1" 会从扩展l果的开始到 str1 剩余部分W一ơ出现的地方Q都一直保持相配?
 
也可以ؓ扩展名指定子字符丌Ӏ?
 
    %PATH:~10,5%
 
会扩?PATH 环境变量Q然后只使用在扩展结果中从第 11 ?偏移?10)字符开始的五个字符。如果没有指定长度,则采用默认|卛_量数值的余数。如果两个数?偏移量和长度)都是负数Q用的数字则是环境变量数值长度加上指定的偏移量或长度?
 
    %PATH:~-10%
 
会提?PATH 变量的最后十个字W?
 
    %PATH:~0,-2%
 
会提?PATH 变量的所有字W,除了最后两个?
 
l于d了gq环境变量扩充的支持。该支持L按默认D停用Q但也可以通过 CMD.EXE ?/V 命o行开兌被启用/停用?br>请参?CMD /?
 
考虑到读取一行文本时所遇到的目前扩充的限制Ӟ延迟环境变量扩充是很有用的,而不是执行的时候。以下例子说明直接变量扩充的问题:
 
    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "%VAR%" == "after" @echo If you see this, it worked
    )
 
不会昄消息Q因为在dW一?IF 语句ӞBOTH IF 语句中的 %VAR% 会被代替Q原因是: 它包?IF 的文体,IF 是一个复合语句。所以,复合语句中的 IF 实际上是在比?"before" ?after"Q这两者永q不会相{。同P以下q个例子也不会达到预期效?
 
    set LIST=
    for %i in (*) do set LIST=%LIST% %i
    echo %LIST%
 
原因是,它不会在目前的目录中建立一个文件列表,而只是将LIST 变量设成扑ֈ的最后一个文件。这也是因ؓ %LIST% 在FOR 语句被读取时Q只被扩充了一ơ;而且Q那时的 LIST 变量是空的。因此,我们真正执行?FOR 循环?
 
    for %i in (*) do set LIST= %i
 
q个循环l箋?LIST 设成扑ֈ的最后一个文件?
 
延迟环境变量扩充允许(zhn)用一个不同的字符(惊叹?在执行时间扩充环境变量。如果gq的变量扩充被启用,可以上面例子写成以下所C,以达到预期效?
 
    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "!VAR!" == "after" @echo If you see this, it worked
    )
 
    set LIST=
    for %i in (*) do set LIST=!LIST! %i
    echo %LIST%
 
如果命o扩展名被启用Q有几个动态环境变量可以被扩展Q但不会出现?SET 昄的变量列表中。每ơ变量数D扩展Ӟq些变量数值都会被动态计。如果用L(fng)q些名称中Q何一个定义变量,那个定义会替代下面描q的动态定?
 
%CD%            - 扩展到当前目录字W串?
%DATE%          - 用跟 DATE 命o同样的格式扩展到当前日期?
%TIME%          - 用跟 TIME 命o同样的格式扩展到当前旉?
%RANDOM%        - 扩展?0 ?32767 之间的Q意十q制数字?
%ERRORLEVEL%    - 扩展到当?ERRORLEVEL 数倹{?
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号?
%CMDCMDLINE%    - 扩展到调用命令处理器的原始命令行?
 
 
    q次用到的属性可以参见红色标注段落,可以做一个实验来加深理解Q?
 
C:\Documents and Settings\wangxiaoqi>set a=1234567890
 
C:\Documents and Settings\wangxiaoqi>echo %a%
1234567890
 
C:\Documents and Settings\wangxiaoqi>echo %a:~3,3%
456
 
C:\Documents and Settings\wangxiaoqi>echo %a:~3%
4567890
 
C:\Documents and Settings\wangxiaoqi>echo %a:~-3%
890
 
C:\Documents and Settings\wangxiaoqi>echo %a:~-3,-2%
8
 
C:\Documents and Settings\wangxiaoqi>echo %a:~-3,-4%
ECHO 处于打开状态?
 
C:\Documents and Settings\wangxiaoqi>echo %a:~,-4%
123456
 
C:\Documents and Settings\wangxiaoqi>echo %a:~4,%
ECHO 处于打开状态?

    d来说Qwindows下面q个Ҏ(gu)的应用跟oracle下面的substr函数q是有区别的Q主要是W二位的负数处理存在差异。Oracle的第二位负数表示从右往左数Q而W(xu)indows下的set命oW二位负数表CZ双开始截断多位Q只有单独用的时候才表示从左往x?
 
    q次需要用到的是日期变量,所以可以很Ҏ(gu)得通过set命o来实玎ͼ
 
C:\Documents and Settings\wangxiaoqi>echo %DATE%
2009-04-30 星期?
 
C:\Documents and Settings\wangxiaoqi>set b=%DATE:~0,10%
 
C:\Documents and Settings\wangxiaoqi>echo %b%
2009-04-30
 
 
    需要注意的是:不同的Windows版本QDATE的默认格式是不同的,有的星期攑֜左边Q有的星期放在右边,所以最好先echo出来看一看再调整参数Q当然在左边的就更方便了Q直?%DATE:~-10% 可以了。有I的时候再研究一下别的特性?



luqingfei 2010-06-27 13:09 发表评论
]]>
þþþþùƷ | Ʒþþþ| aaþʦ2021Ʒ | ݺɫۺþö| 91Ʒþþþþ| þˬˬƬAV鶹| һɫۺþ| 91ƷۺϾþĻþһ| ݺɫþۺѿ| ŷƷþþ| ŷҹAŴƬþ| þùƷþ| þֻоƷ߹ۿ| ݹƷþþþ| Ʒþþþù3d| ŮһaëƬþw| ޹ƷƬþ| þþþ99ƷƬţţӰ | þҹɫƷ| ŷ޾þav| þþþþƷĻ | þۺһ| ɫۺϾþ| 97rþþƷ99| ھƷۺϾþþ40p| ŷСþþþþþ| wwþþþþþþþ| ˾ƷþѶ| þþƷAvӰƬ| 97Ƶþþ| Ʒ˾þþ| ޹˾þۺһ77 | ۺϾþþ| ˾þۺӰԺ| һɫþ88ۺպƷ | 鶹һ99þþþ| ƯޱгĻþ| þˬˬƬav鷳| þþþ99оƷ10| AVһȾþ| ޾þþһ|