﻿<?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>博客园-上帝玩骰子</title><link>http://www.cnblogs.com/ShadowK/</link><description>　　　　　　　--shadowk</description><language>zh-cn</language><lastBuildDate>Mon, 06 Jul 2009 13:18:24 GMT</lastBuildDate><pubDate>Mon, 06 Jul 2009 13:18:24 GMT</pubDate><ttl>60</ttl><item><title>ConsoleHelper</title><link>http://www.cnblogs.com/ShadowK/archive/2009/05/15/1457808.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Fri, 15 May 2009 08:42:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2009/05/15/1457808.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/1457808.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2009/05/15/1457808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/1457808.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/1457808.html</trackback:ping><description><![CDATA[<div class="cnblogs_code"><img id="Code_Closed_Image_164130" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_164130').style.display='none'; document.getElementById('Code_Open_Image_164130').style.display='inline'; document.getElementById('Code_Open_Text_164130').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="display: none; "><img id="Code_Open_Image_164130" style="display: inline; " onclick="this.style.display='none'; document.getElementById('Code_Open_Text_164130').style.display='none'; getElementById('Code_Closed_Image_164130').style.display='inline'; getElementById('Code_Closed_Text_164130').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_164130" class="cnblogs_code_Collapse" style="display: none; ">Code</span><span id="Code_Open_Text_164130" style="display: inline; "><br />
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">public</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">class</span><span style="color: #000000;">&#160;ConsoleHelper<br />
&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">private</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">const</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">int</span><span style="color: #000000;">&#160;CTRL_CLOSE_EVENT&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;</span><span style="color: #800080;">2</span><span style="color: #000000;">;<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">public</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">delegate</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">bool</span><span style="color: #000000;">&#160;ConsoleCtrlDelegate(</span><span style="color: #0000FF;">int</span><span style="color: #000000;">&#160;dwCtrlType);<br />
<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[DllImport(</span><span style="color: #800000;">"</span><span style="color: #800000;">kernel32.dll</span><span style="color: #800000;">"</span><span style="color: #000000;">)]<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">private</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">extern</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">bool</span><span style="color: #000000;">&#160;SetConsoleCtrlHandler(ConsoleCtrlDelegate&#160;HandlerRoutine,&#160;</span><span style="color: #0000FF;">bool</span><span style="color: #000000;">&#160;Add);<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">private</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">bool</span><span style="color: #000000;">&#160;HandlerRoutine(</span><span style="color: #0000FF;">int</span><span style="color: #000000;">&#160;CtrlType)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">switch</span><span style="color: #000000;">&#160;(CtrlType)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">case</span><span style="color: #000000;">&#160;CTRL_CLOSE_EVENT:<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">break</span><span style="color: #000000;">;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">return</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">false</span><span style="color: #000000;">;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">public</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">void</span><span style="color: #000000;">&#160;SetHandler()<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ConsoleCtrlDelegate&#160;newDategate&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;HandlerRoutine;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;SetConsoleCtrlHandler(newDategate,&#160;</span><span style="color: #0000FF;">true</span><span style="color: #000000;">);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
</span></span></div><img src ="http://www.cnblogs.com/ShadowK/aggbug/1457808.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48008/" target="_blank">IBM发布全球首款开源智能编译器</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>DllHelper</title><link>http://www.cnblogs.com/ShadowK/archive/2009/05/15/1457769.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Fri, 15 May 2009 08:12:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2009/05/15/1457769.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/1457769.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2009/05/15/1457769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/1457769.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/1457769.html</trackback:ping><description><![CDATA[<div class="cnblogs_code"><img id="Code_Closed_Image_161125" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_161125').style.display='none'; document.getElementById('Code_Open_Image_161125').style.display='inline'; document.getElementById('Code_Open_Text_161125').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_161125" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_161125').style.display='none'; getElementById('Code_Closed_Image_161125').style.display='inline'; getElementById('Code_Closed_Text_161125').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_161125" class="cnblogs_code_Collapse">Code</span><span id="Code_Open_Text_161125" style="display: none"><br />
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">public</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">class</span><span style="color: #000000;">&#160;DllHelper<br />
&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">private</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;IntPtr&#160;libHandle&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;IntPtr.Zero;<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[DllImport(</span><span style="color: #800000;">"</span><span style="color: #800000;">kernel32</span><span style="color: #800000;">"</span><span style="color: #000000;">)]<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">private</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">extern</span><span style="color: #000000;">&#160;IntPtr&#160;LoadLibrary(</span><span style="color: #0000FF;">string</span><span style="color: #000000;">&#160;lpLibFileName);<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[DllImport(</span><span style="color: #800000;">"</span><span style="color: #800000;">kernel32</span><span style="color: #800000;">"</span><span style="color: #000000;">)]<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">private</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">extern</span><span style="color: #000000;">&#160;IntPtr&#160;GetProcAddress(IntPtr&#160;hModule,&#160;</span><span style="color: #0000FF;">string</span><span style="color: #000000;">&#160;lpProcName);<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[DllImport(</span><span style="color: #800000;">"</span><span style="color: #800000;">kernel32</span><span style="color: #800000;">"</span><span style="color: #000000;">)]<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">private</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">extern</span><span style="color: #000000;">&#160;IntPtr&#160;FreeLibrary(IntPtr&#160;hLibModule);<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">public</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">object</span><span style="color: #000000;">&#160;Invoke(</span><span style="color: #0000FF;">string</span><span style="color: #000000;">&#160;fileName,&#160;</span><span style="color: #0000FF;">string</span><span style="color: #000000;">&#160;funName,&#160;</span><span style="color: #0000FF;">object</span><span style="color: #000000;">[]&#160;objParams,&#160;Type&#160;returnType)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">try</span><span style="color: #000000;"><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">获取函数地址</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#160;(libHandle&#160;</span><span style="color: #000000;">==</span><span style="color: #000000;">&#160;IntPtr.Zero)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;libHandle&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;LoadLibrary(fileName);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#160;(libHandle&#160;</span><span style="color: #000000;">==</span><span style="color: #000000;">&#160;IntPtr.Zero)&#160;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">return</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">null</span><span style="color: #000000;">;<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;IntPtr&#160;procAddres&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;GetProcAddress(libHandle,&#160;funName);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#160;(procAddres&#160;</span><span style="color: #000000;">==</span><span style="color: #000000;">&#160;IntPtr.Zero)&#160;</span><span style="color: #0000FF;">return</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">null</span><span style="color: #000000;">;<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">获取参数类型</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Type[]&#160;paramTypes&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">new</span><span style="color: #000000;">&#160;Type[objParams.Length];<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">for</span><span style="color: #000000;">&#160;(</span><span style="color: #0000FF;">int</span><span style="color: #000000;">&#160;i&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;</span><span style="color: #800080;">0</span><span style="color: #000000;">;&#160;i&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&#160;objParams.Length;&#160;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;paramTypes[i]&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;objParams[i].GetType();<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">构建调用方法模型</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;AssemblyName&#160;asembyName&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">new</span><span style="color: #000000;">&#160;AssemblyName();<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;asembyName.Name&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;</span><span style="color: #800000;">"</span><span style="color: #800000;">WinDllInvoke_Assembly</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;AssemblyBuilder&#160;asembyBuilder&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;AppDomain.CurrentDomain.DefineDynamicAssembly(asembyName,&#160;AssemblyBuilderAccess.Run);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ModuleBuilder&#160;moduleBuilder&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;asembyBuilder.DefineDynamicModule(</span><span style="color: #800000;">"</span><span style="color: #800000;">WinDllInvoke</span><span style="color: #800000;">"</span><span style="color: #000000;">);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;MethodBuilder&#160;methodBuilder&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;moduleBuilder.DefineGlobalMethod(</span><span style="color: #800000;">"</span><span style="color: #800000;">InvokeFun</span><span style="color: #800000;">"</span><span style="color: #000000;">,&#160;MethodAttributes.Public&#160;</span><span style="color: #000000;">|</span><span style="color: #000000;">&#160;MethodAttributes.Static,&#160;returnType,&#160;paramTypes);<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">获取一个&#160;ILGenerator&#160;，用于发送所需的&#160;IL&#160;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ILGenerator&#160;IL&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;methodBuilder.GetILGenerator();<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">for</span><span style="color: #000000;">&#160;(</span><span style="color: #0000FF;">int</span><span style="color: #000000;">&#160;j&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;</span><span style="color: #800080;">0</span><span style="color: #000000;">;&#160;j&#160;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&#160;paramTypes.Length;&#160;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">将参数压入堆栈</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#160;(paramTypes[j].IsValueType)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;IL.Emit(OpCodes.Ldarg,&#160;j);&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">By&#160;Value</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">else</span><span style="color: #000000;"><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;IL.Emit(OpCodes.Ldarga,&#160;j);&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">By&#160;Addrsss</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">&#160;判断处理器类型</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#160;(IntPtr.Size&#160;</span><span style="color: #000000;">==</span><span style="color: #000000;">&#160;</span><span style="color: #800080;">4</span><span style="color: #000000;">)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;IL.Emit(OpCodes.Ldc_I4,&#160;procAddres.ToInt32());<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">else</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#160;(IntPtr.Size&#160;</span><span style="color: #000000;">==</span><span style="color: #000000;">&#160;</span><span style="color: #800080;">8</span><span style="color: #000000;">)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;IL.Emit(OpCodes.Ldc_I8,&#160;procAddres.ToInt64());<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">else</span><span style="color: #000000;"><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">throw</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">new</span><span style="color: #000000;">&#160;PlatformNotSupportedException(</span><span style="color: #800000;">"</span><span style="color: #800000;">不好意思，偶不认得你哦！</span><span style="color: #800000;">"</span><span style="color: #000000;">);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;IL.EmitCalli(OpCodes.Calli,&#160;CallingConvention.StdCall,&#160;returnType,&#160;paramTypes);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;IL.Emit(OpCodes.Ret);&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">&#160;返回值&#160;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;moduleBuilder.CreateGlobalFunctions();<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">&#160;取得方法信息&#160;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;MethodInfo&#160;methodInfo&#160;</span><span style="color: #000000;">=</span><span style="color: #000000;">&#160;moduleBuilder.GetMethod(</span><span style="color: #800000;">"</span><span style="color: #800000;">InvokeFun</span><span style="color: #800000;">"</span><span style="color: #000000;">);<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">return</span><span style="color: #000000;">&#160;methodInfo.Invoke(</span><span style="color: #0000FF;">null</span><span style="color: #000000;">,&#160;objParams);&#160;</span><span style="color: #008000;">//</span><span style="color: #008000;">&#160;调用方法，并返回其值</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">catch</span><span style="color: #000000;">&#160;{&#160;</span><span style="color: #0000FF;">return</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">null</span><span style="color: #000000;">;&#160;}<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">public</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">static</span><span style="color: #000000;">&#160;</span><span style="color: #0000FF;">void</span><span style="color: #000000;">&#160;FreeLibrary()<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color: #0000FF;">if</span><span style="color: #000000;">&#160;(libHandle&#160;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&#160;IntPtr.Zero)&#160;FreeLibrary(libHandle);<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br />
</span></span></div><img src ="http://www.cnblogs.com/ShadowK/aggbug/1457769.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48008/" target="_blank">IBM发布全球首款开源智能编译器</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>C# C++ 相互序列化</title><link>http://www.cnblogs.com/ShadowK/archive/2009/01/08/1372099.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Thu, 08 Jan 2009 10:21:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2009/01/08/1372099.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/1372099.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2009/01/08/1372099.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/1372099.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/1372099.html</trackback:ping><description><![CDATA[摘要: 最近项目需要，为了解决C++和C#之间Socket通信，能够传对象。写了个C++序列化的功能主要是兼容C#序列化的格式，这样用C++序列化的xml，可以用C#反序列化回来，反之同理。不敢藏起来，拿出来同大家分享。话不多说，直接上代码。http://files.cnblogs.com/ShadowK/seri.rarC#部分。CodeCode highlighting produced by Act&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2009/01/08/1372099.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/1372099.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48007/" target="_blank">IE颓势不减 微软下月公布最新浏览器架构</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>QQ大家来找茬外挂</title><link>http://www.cnblogs.com/ShadowK/archive/2008/09/26/1299467.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Fri, 26 Sep 2008 04:18:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2008/09/26/1299467.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/1299467.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2008/09/26/1299467.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/1299467.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/1299467.html</trackback:ping><description><![CDATA[<p><img border="0" alt="" src="http://www.cnblogs.com/images/cnblogs_com/shadowk/83270/o_Untitled-1.gif" width="172" height="325" /></p>
<p>&nbsp;</p>
<p>在网上找了一个原型,用不起,自已改了下,现在更快,更方便.</p>
<p>&nbsp;</p>
下载 <a href="http://files.cnblogs.com/ShadowK/QQ大家来找茬外挂(含源码).rar">QQ大家来找茬外挂2009(含源码)</a> 
 <img src ="http://www.cnblogs.com/ShadowK/aggbug/1299467.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48002/" target="_blank">竞争日趋激烈 微软欲借 Windows 7 扭转战局</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>迅雷漫画下载 v1.0(绿色版) 附源码</title><link>http://www.cnblogs.com/ShadowK/archive/2008/03/29/1128401.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Fri, 28 Mar 2008 18:35:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2008/03/29/1128401.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/1128401.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2008/03/29/1128401.html#Feedback</comments><slash:comments>36</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/1128401.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/1128401.html</trackback:ping><description><![CDATA[摘要: 发现迅雷网站漫画很全,写了一个用于下载迅雷网站上漫画的工具.
&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2008/03/29/1128401.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/1128401.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48001/" target="_blank">上海电信计划2012年80%用户实现100M带宽</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>测试浏览器，网络环境的好工具</title><link>http://www.cnblogs.com/ShadowK/archive/2007/06/03/769128.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Sat, 02 Jun 2007 17:18:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2007/06/03/769128.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/769128.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2007/06/03/769128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/769128.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/769128.html</trackback:ping><description><![CDATA[<a href="http://www.cjol.com/test/sc/step1.htm">http://www.cjol.com/test/sc/step1.htm</a>
<img src ="http://www.cnblogs.com/ShadowK/aggbug/769128.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48000/" target="_blank">数万名网友签名抗议星际争霸2取消局域网功能</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>冷笑话集锦</title><link>http://www.cnblogs.com/ShadowK/archive/2007/04/29/731973.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Sun, 29 Apr 2007 02:50:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2007/04/29/731973.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/731973.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2007/04/29/731973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/731973.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/731973.html</trackback:ping><description><![CDATA[摘要: 有一只企鹅，他的家离北极熊家特别远，要是靠走的话，得走20年才能到。有一天，企鹅在家里呆着特别无聊，准备去找北极熊玩，与是他出门了，可是走到路的一半的时候发现自己忘记锁门了，这就已经走了10年了，可是门还是得锁啊，于是企鹅又走回家去锁门。锁了门以后，企鹅再次出发去找北极熊，等于他花了40年才到了北极熊他们家……然后企鹅就敲门说：“北极熊北极熊，企鹅找你玩来了！” <br>　　结果北极熊开门以后你猜他说什么？……&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2007/04/29/731973.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/731973.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47999/" target="_blank">Silverlight打造杰克逊纪念专题</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>（转载）动态控件的状态问题</title><link>http://www.cnblogs.com/ShadowK/archive/2006/12/27/604604.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Wed, 27 Dec 2006 02:10:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/12/27/604604.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/604604.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/12/27/604604.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/604604.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/604604.html</trackback:ping><description><![CDATA[摘要: 下面两页差别很小，就是一句语句的前后次序有所不同，但PostBack后显示效果有所不同，请解释为什么显示效果不同，并且解释正确显示的那页(你知道是哪页，对么？)中Response.Write的输出结果。&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/12/27/604604.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/604604.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47998/" target="_blank">传诺基亚正在开发Android手机</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>（转载）基于.net开发平台项目案例集锦</title><link>http://www.cnblogs.com/ShadowK/archive/2006/12/07/584953.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Thu, 07 Dec 2006 01:46:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/12/07/584953.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/584953.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/12/07/584953.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/584953.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/584953.html</trackback:ping><description><![CDATA[摘要: 作者：郑佐 2006-10-31<br>经过微软.net  Framework 2.0的革新，.net平台的开发越来越精彩。笔者收集基于.net开发的n个项目，一方面为新手提供有价值学习资源，培养起软件开发的乐趣，另一方面共勉已从事.net领域工作多年并有明确发展目标的同仁，提高自己，更上一层楼。&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/12/07/584953.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/584953.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47996/" target="_blank">7月编程语言排行榜</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>我的第一个像模像样的程序:虹影 [远程监控]</title><link>http://www.cnblogs.com/ShadowK/archive/2006/11/29/575916.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Wed, 29 Nov 2006 00:49:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/11/29/575916.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/575916.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/11/29/575916.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/575916.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/575916.html</trackback:ping><description><![CDATA[摘要: 写的一个木马程序.主要那时候在学校里喜欢整人家的机子玩,就写了一个木马类的程序,大二的时候开始的吧,那时候还在用VB,写的一个程序.仅作记念.程序是开源的,如果要的话,请联系我.<br>我把它放到网上126的邮箱里了，在"草稿"里，有兴趣的朋友可以去下<br>www.126.com<br>用户名:rsroom<br>密码:11111111&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/11/29/575916.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/575916.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47995/" target="_blank">Google Voice 上手</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>（转载）Ajax.NET与Atlas的比较</title><link>http://www.cnblogs.com/ShadowK/archive/2006/11/28/575108.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Tue, 28 Nov 2006 06:01:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/11/28/575108.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/575108.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/11/28/575108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/575108.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/575108.html</trackback:ping><description><![CDATA[摘要: 简介:<br>Ajax.NET是一款免费的面向.Net的Ajax Library<br>Atlas是微软提供给开发者的Ajax开发包<br>两者都可以让ASP.Net具备Ajax功能<br>近日，利用空闲时间把这两个东西做了不完全的比较&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/11/28/575108.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/575108.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47994/" target="_blank">Google号召社区力量为互联网加速</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>（转载）用好VS2005之扩展membership服务</title><link>http://www.cnblogs.com/ShadowK/archive/2006/11/28/575106.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Tue, 28 Nov 2006 06:00:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/11/28/575106.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/575106.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/11/28/575106.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/575106.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/575106.html</trackback:ping><description><![CDATA[摘要: ASP.NET 2.0中新增的最佳功能之一是新的成员身份服务，它提供了用于创建和管理用户帐户的易于使用的API<br>　　ASP.NET 2.0中新增的最佳功能之一是新的成员身份服务，它提供了用于创建和管理用户帐户的易于使用的API。ASP.NET 1.x大规模引入了窗体身份验证，但仍然要求您编写相当数量的代码来执行实际操作中的窗体身份验证。成员身份服务填补了ASP.NET 1.x窗体身份验证服务的不足，并且使实现窗体身份验证变得比以前简单得多。 <br>　　成员身份API通过两个新的类公开：Membership和MembershipUser。前者包含了用于创建用户、验证用户以及完成其他工作的静态方法。MembershipUser代表单个用户，它包含了用于检索和更改密码、获取上次登录日期以及完成类似工作的方法和属性。通过这两个新的类，我们可以不用写一行代码，方便得完成对用户的管理。 但是在实际开发过程中，绝对不能满足我们日常开发的需要。经过日常项目的开发和网络上资料的搜索，现将其一一列出：&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/11/28/575106.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/575106.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47994/" target="_blank">Google号召社区力量为互联网加速</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>（转载）关于asp.net的配置文件说明。</title><link>http://www.cnblogs.com/ShadowK/archive/2006/11/23/570059.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Thu, 23 Nov 2006 09:11:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/11/23/570059.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/570059.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/11/23/570059.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/570059.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/570059.html</trackback:ping><description><![CDATA[摘要: Contents<br><br>Machine.config<br>Web.config<br>Changing Settings<br>Using the <appSettings> Section<br>Using NameValueFileSectionHandler<br>Custom Configuration Sections<br>Conclusion&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/11/23/570059.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/570059.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47989/" target="_blank">Twitter无处不在 魔兽世界Twitter发送器插件发布</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>（转载）.NET 2.0的Provider模式</title><link>http://www.cnblogs.com/ShadowK/archive/2006/11/22/568671.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Wed, 22 Nov 2006 06:25:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/11/22/568671.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/568671.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/11/22/568671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/568671.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/568671.html</trackback:ping><description><![CDATA[摘要: Provider设计模式是在.NET 1.1 framework中被首次介绍到，特别是在ASP.NET快速入门中，以及后来在ASP.NET Whidbey中作为membership management provider API被正式化。它的主要目的在于为一个API进行定义和实现的分离。这样就通过核心功能的灵活性和易于修改的特点使得API具有灵活性。&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/11/22/568671.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/568671.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47988/" target="_blank">Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>（转载）rootkit综述</title><link>http://www.cnblogs.com/ShadowK/archive/2006/11/21/566824.html</link><dc:creator>ShadowK</dc:creator><author>ShadowK</author><pubDate>Tue, 21 Nov 2006 00:50:00 GMT</pubDate><guid>http://www.cnblogs.com/ShadowK/archive/2006/11/21/566824.html</guid><wfw:comment>http://www.cnblogs.com/ShadowK/comments/566824.html</wfw:comment><comments>http://www.cnblogs.com/ShadowK/archive/2006/11/21/566824.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ShadowK/comments/commentRss/566824.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ShadowK/services/trackbacks/566824.html</trackback:ping><description><![CDATA[摘要: 在网络安全中经常会遇到rootkit，NSA安全和入侵检测术语字典( NSA Glossary of Terms Used in Security and Intrusion Detection)对rootkit的定义如下：A hacker security tool that captures passwords and message traffic to and from a computer. A collection of tools that allows a hacker to provide a backdoor into a system, collect information on other systems on the network,mask the fact that the system is compromised, and much more. Rootkit is a classic example of Trojan Horse software. Rootkit is available for a wide range of operatin&nbsp;&nbsp;<a href='http://www.cnblogs.com/ShadowK/archive/2006/11/21/566824.html'>阅读全文</a><img src ="http://www.cnblogs.com/ShadowK/aggbug/566824.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47987/" target="_blank">预测：Twitter最可能收购的十家公司</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item></channel></rss>