⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 博客堂20040527.htm

📁 windows网络编程技术文章
💻 HTM
📖 第 1 页 / 共 5 页
字号:
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl2_Hyperlink2" href="http://blog.joycode.com/kaneboy/posts/22878.aspx">Is this MVC ? Maybe... But I don't think so...</a></h3>
							这两天在CSDN的文档区翻到了一篇翻译的文章,<A href="http://www.csdn.net/develop/Read_Article.asp?id=28063">《在ASP.NET中实现Model-View-Controller模式》</A>,这篇文章是摘自鼎鼎大名的<A href="http://msdn.microsoft.com/library/en-us/dnpatterns/html/Esp.asp?frame=true">ESP</A>,我想.NET程序员很少没有看过这本书的,说它是.NET程序员的Must-Read毫不为过(另一篇Must-Read是<A href="http://msdn.microsoft.com/library/en-us/dnbda/html/distapp.asp?frame=true">AppArc</A>,即Application Architecture for .NET: Designing Applications and Services)。<BR><BR>回到这篇文章上来,原文在<A href="http://msdn.microsoft.com/library/en-us/dnpatterns/html/ImpMVCinASP.asp?frame=true">这里</A>,Implementing Model-View-Controller in ASP.NET。我当初在看这部分的时候就相当疑惑,这里所描述的实现能否准确的称为MVC?<BR><BR>先看看大家熟悉得不能再熟悉的MVC的图示:<BR><IMG src="http://msdn.microsoft.com/library/en-us/dnpatterns/html/des_MVC_Fig01.gif" border=0><BR><BR>再看看ESP中对MVC模式的描述(如果感兴趣,可以看看最&#8220;正宗&#8221;的SmallTalk中MVC模式的描述,点<A href="http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html">这里</A>):<BR>It is important to note that both the view and the controller depend on the model. However, the model depends on neither the view nor the controller. This is one the key benefits of the separation. This separation allows the model to be built and tested independent of the visual presentation. The separation between view and controller is secondary in many rich-client applications, and, in fact, many user interface frameworks implement the roles as one object. In Web applications, on the other hand, the separation between view (the browser) and controller (the server-side components handling the HTTP request) is very well defined.<BR><BR>MVC模式有两点非常重要:1、Model完全独立于Controller和View;2、Controller独立于View的实现。上面对MVC的描述的最后一句话的意思是&#8220;ASP.NET中通过将View定义到页面文件,将Controller定义到Code-Behind组件中实现了Controller和View的分离&#8221;。<BR><BR>我不知道在这里ESP是怎么定义&#8220;separation&#8221;的含义的,如果Controller是通过&#8220;Front Controller&#8221;来实现,我还是认可达到了一定的分离度,但是如果Controller是通过&#8220;Page Controller&#8221;(也就是那个.aspx.cs的Code-Behind的模式)来实现的,我则对于是否真的这就算是&#8220;separation&#8221;表示怀疑。在<A href="http://msdn.microsoft.com/library/en-us/dnpatterns/html/ImpMVCinASP.asp?frame=true">这篇文章</A>中,实现MVC就是用的Page Controller的方式。所以,我对于<A href="http://msdn.microsoft.com/library/en-us/dnpatterns/html/ImpMVCinASP.asp?frame=true">这篇文章</A>中所示范的实现是否真正算是MVC方式表示严重怀疑。<BR><BR>作为一个真正的MVC的系统,Model和Controller因为从View中独立了出来,所以具有非常高的重用性,比如,如果将作为View的页面进行修改,或者干脆把现有的页面文件删除然后再做过新的页面,或者将程序的界面从ASP.NET页面改成一个WinForms程序,甚至改为一个Mobile设备上的程序,Model和Controller仍然是可重用的,就是说,界面背后的数据、流程、状态控制、业务规则都是一样的,所以View的变换决不会影响Model和Controller。<BR><BR>对于一个MVC实现的系统来说,实现上面这一点应该是基本的需求,而且也是MVC的初衷(把View从Model和Controller中解藕出来,View的变化不影响其他部分)。而上文所提到的那样的实现方式,我看不出能够达到MVC所需要达到的要求。<BR><BR>就我所知,现在.NET下真正实现了MVC的框架只有两个:SourceForge上的<A href="http://mavnet.sourceforge.net/">Maverick</A>和微软的<A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=98C6CC9D-88E1-4490-8BD6-78092A0F084E&amp;displaylang=en">UIPAB</A>,利用它们提供的Framework,可以真正的同时很方便的实现MVC的Application。如果有时间,我希望不久能以UIPAB为基础,写一篇如果实现MVC模式的WebForms程序的文章。
							<p class="postfoot" align="right">
								2004-05-28 00:44:00
								by
								<a id="RecentPosts__ctl2_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/kaneboy/">kaneboy</a>
								【评论:0)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl3_Hyperlink2" href="http://blog.joycode.com/kaneboy/posts/22877.aspx">TechEd2004</a></h3>
							<TABLE>
<TBODY>
<TR>
<TD vAlign=top>TechEd2004进行到了第三天。下面是一些TechEd Session的记录:<br><BR><A href="http://weblogs.asp.net/tims/archive/2004/05/27/142798.aspx">SQL Server 2005 CLR Integration<BR></A><A href="http://blogs.msdn.com/korbyp/articles/142713.aspx">Source Control for Team Foundation, Presentation</A><BR><A href="http://weblogs.asp.net/tims/archive/2004/05/26/141886.aspx">SQL Server 2005 Web Services</A><BR><A href="http://blogs.msdn.com/PAndrew/archive/2004/05/26/142003.aspx">SQL Server 2005 Whistle Stop Tour</A><BR><A href="http://blogs.msdn.com/robcaron/articles/141733.aspx">Visual Studio 2005 Team System: Software Project Management</A> <BR><A href="http://www.dasblonde.net/PermaLink.aspx?guid=fa965f87-d400-463c-b285-1376e5f98a4f">Inside IIS and ASP.NET: Intercepting HTTP Requests</A><BR><A href="http://benjaminm.net/PermaLink.aspx?guid=eb3f4993-5cee-41f4-a74e-f8462e1adc9a">Tracing with WSE 2.0</a><BR><A href="http://haacked.europe.webmatrixhosting.net/archive/2004/05/27/492.aspx">The Difficulties of Language Design</A></TD>
<TD><IMG src="http://www.microsoft.com/technet/images/community/events/images/48707_teched_left_F.jpg" border=0></TD></TR></TBODY></TABLE><BR>如果想了解更多TechEd2004的讲座的内容,不要错过TechEd2004的Blog站点:<A href="http://techedbloggers.net/">TechEdBloggers.Net</A>。<BR><BR>当然,TechEd2004的<A href="http://www.microsoft.com/technet/community/events/teched04.mspx">官方站点</A>里面也包含了丰富的内容,特别是<A href="http://www.microsoft.com/technet/community/events/teched04pics.mspx">图片库</A>,可以让我们感受到TechEd现场的气氛。<BR><BR>令人感兴趣的是,Sohu的IT频道特地开了一个<A href="http://it.sohu.com/7/0504/60/column220246047.shtml">TechEd2004专栏</A>,通过一个现场的记者在跟踪报导TechEd2004的盛况。看看这篇:<A href="http://it.sohu.com/2004/05/26/65/article220266520.shtml">非程序员眼中的InfoPath</A>,很有意思。
							<p class="postfoot" align="right">
								2004-05-27 23:34:00
								by
								<a id="RecentPosts__ctl3_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/kaneboy/">kaneboy</a>
								【评论:0)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl4_Hyperlink2" href="http://blog.joycode.com/technofantasy/posts/22843.aspx">使网页无法后退的方法</a></h3>
							<P>这个问题是论坛中多次问过的问题,例如在用户填完一个表单进入下一页,就不希望用户能按&#8220;后退&#8221;按钮回到上一页。一般我的回答是做一个中间页面。今天找到一个更简单的方法:使用replace方法:</P>
<P><BR>&lt;HTML&gt;<BR>&lt;SCRIPT&gt;<BR>function replaceURL(){<BR>&nbsp;&nbsp;&nbsp; window.location.replace("<A href="http://www.applevb.com">http://www.applevb.com</A>");<BR>}&nbsp;&nbsp;&nbsp; <BR>&lt;/SCRIPT&gt;<BR>&lt;HEAD&gt;<BR>&lt;TITLE&gt; New Document &lt;/TITLE&gt;<BR>&lt;/HEAD&gt;</P>
<P>&lt;BODY&gt;<BR>&lt;a href = "#" onclick = "replaceURL()"&gt;jump to applevb&lt;/a&gt;<BR>&lt;/BODY&gt;<BR>&lt;/HTML&gt;</P>
<P>&nbsp;</P>
<P>采用replace方法不是跳转,而且是用新页面替换了旧页面,这样在历史中都不会有旧页面的连接。</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
							<p class="postfoot" align="right">
								2004-05-27 17:07:00
								by
								<a id="RecentPosts__ctl4_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/technofantasy/">陈锐</a>
								【评论:7)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl5_Hyperlink2" href="http://blog.joycode.com/zhanbos/posts/22837.aspx">Yahoo Toolbar将增加Aniti-Spyware之新功能</a></h3>
							<P>据最新报道,Yahoo预计在几个小时内推出新版Toolbar的beta,其最新功能就是可以扫描硬盘发现Spyware.这对普通用户而言是个好消息。</P>
<P>其技术是基于<A href="http://www.pestpatrol.com/">Pest Patrol</A>的软件。家庭用户买这个公司的软件需要40美元,现在可以免费使用了。</P>
<P>在MSN, Google和Yahoo的Toolbar激烈竞争下,广大消费者有了更多的选择。现在连Anti-Spyware都有了,下一步会增加什么?</P>
<P>新闻来自<A href="http://zdnet.com.com/2100-1104_2-5221271.html">ZDNet</A>. </P>
							<p class="postfoot" align="right">
								2004-05-27 16:24:00
								by
								<a id="RecentPosts__ctl5_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/zhanbos/">孙展波</a>
								【评论:1)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl6_Hyperlink2" href="http://blog.joycode.com/roboo/posts/22836.aspx">豆腐的田园生活</a></h3>
							<P><A href="http://blog.joycode.com/roboo/gallery/780.aspx">http://blog.joycode.com/roboo/gallery/780.aspx</A></P>
<P>胡乱贴的,大家别生气呀。</P>
<P>这个是今年五一在自己家的一亩三分地上照的</P>
							<p class="postfoot" align="right">
								2004-05-27 16:21:00
								by
								<a id="RecentPosts__ctl6_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/roboo/">豆腐</a>
								【评论:7)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl7_Hyperlink2" href="http://blog.joycode.com/roboo/posts/22833.aspx">自定义开发工具</a></h3>
							<P>其实Visual Studio的IDE环境是我见到的最好的编程环境了。</P>
<DIV class=ImageThumbnailImage><A id=rprImages__ctl3_lnkThumbnail HREF="/roboo/gallery/image/1181.aspx"><IMG height=67 src="/images/blog.joycode.com/roboo/508/t_snap.jpg" width=130 border=0></A> </DIV>
<DIV class=ImageThumbnailTitle>聪明的智能感知,老实讲,这样的功能实现起来并不是多么的深奥,但是细致的考虑真的不得不PF一下。</DIV>
<DIV class=ImageThumbnailTitle>在一定程度上来讲,如果使用Visual Studio .net 或者(Visual Stuio6)进行一种特定语言的开发也真的是没有多大的必要进行再一次的开发,因为VS本身就支持这样的功能,就拿我们现在要用到的<A href="http://standards.ieee.org/catalog/olis/atlas.html">atlas</A>语言来说吧,首先只要定义了atlas的语法文件,就有办法让Vs.net 2003 来支持。</DIV>
<DIV class=ImageThumbnailTitle><A href="http://udn.epicgames.com/Two/UnrealScriptHighlighting">http://udn.epicgames.com/Two/UnrealScriptHighlighting</A>&nbsp;有比较详细的讲解。</DIV>
<DIV class=ImageThumbnailTitle>&nbsp;</DIV>
<DIV class=ImageThumbnailTitle>但是有的时候,这样使不够的。我们的这个应用必须显式的支持多种语言,尤其是这个<A href="http://standards.ieee.org/catalog/olis/atlas.html">atlas</A>语言。<img alt='悲伤的脸' src=http://messenger.china.msn.com/Resource/emoticons/sad_smile.gif></DIV>
<DIV class=ImageThumbnailTitle>另外,VS仅仅做到了关键字加亮的程度,有的时候我们需要做到<A href="http://www.wholetomato.com/"><EM>Visual Assist</EM></A>&nbsp;这么智能的感知,包括对于变量名称,函数名称的提示。</DIV>
<DIV class=ImageThumbnailTitle>&nbsp;</DIV>
<DIV class=ImageThumbnailTitle>1.代码加亮</DIV>
<DIV class=ImageThumbnailTitle>因此,决定自己来做语法加亮引擎,同时在制作加亮引擎的同时,留出编程接口,以便第三方开发出更好的加亮引擎。坦白讲,这样做也有逃避劳动的嫌疑,因为自认为语法加亮本人无法做到特别的好。<img alt='悲伤的脸' src=http://messenger.china.msn.com/Resource/emoticons/sad_smile.gif></DIV>
<DIV class=ImageThumbnailTitle>2.design window</DIV>
<DIV class=ImageThumbnailTitle>由于项目应用的特殊性,不能使用我们常见的按钮,输入框这些控件,必须使用元器件类似的控件,因此design window需要用VC来开发,并预留开发接口,以便将来更多的元器件库的加入。其实这里的所谓接口是很简单的,也没有必要做成ActiveX那么复杂的。只要是包含指定API函数和指定类型的dialog的DLL文件即可,复制到软件运行的control目录即可。</DIV>
<P><IMG style="WIDTH: 436px; HEIGHT: 157px" height=180 src="/images/blog.joycode.com/roboo/508/o_ewb.jpg" width=436></P>
<P>3.编译,链接</P>
<P>我们这样的小公司不可能自己做编译器了,所以我们的编译是调用语言自己本身提供的编译器来实现的,事实上VS本身也是这样实现的,不过按照标准,首先声称make文件,然后再进行编译,以便将来这个开发软件也可以运行在非windows平台。</P>
<P><A href="http://blog.joycode.com/moslem">moslem</A>提供的<A href="http://blog.joycode.com/moslem/posts/3156.aspx">方法</A>自然也是可以的,不过我采用的办法是利用管道,这样用户在编译的同时就可以看到输出的结果,而不是等到最终。</P>
<P>此外,由于需要支持多种语言,而不同语言的编译器的输出文本格式是不一样的,因此需要将对编译器的文本输出的分析单独做成一个DLL,以实现错误定位的功能。</P>
<P>4.调试</P>
<P>为实现调试的功能,编译器首先是必须支持Debug开关的,否则即使可以用SoftIce设置断点,意义也不是很大,<A href="http://blog.joycode.com/blueinkstone">小马哥</A>给我介绍的PCH 和PDB文件的方法我现在还没有时间进行。</P>
<P>整个这个编辑器的开发,我对调试这一块是最没有底的,大家有什么好办法呀。</P>
							<p class="postfoot" align="right">
								2004-05-27 16:01:00
								by
								<a id="RecentPosts__ctl7_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/roboo/">豆腐</a>
								【评论:3)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl8_Hyperlink2" href="http://blog.joycode.com/moslem/posts/22826.aspx">这个“网银大盗”有点怪</a></h3>
							<P><FONT face=Georgia>虽然前一段在网上看到江民公司发现一个所谓的&#8220;网银大盗&#8221;病毒,可以获取用户在工商银行网上银行中的登录帐户名和密码云云,当时并没有深究,可近一个多月来却发现老有人在继续炒做这个病毒,Sina 上竟然还登了:</FONT><A href="http://tech.sina.com.cn/s/n/2004-05-26/0848367142.shtml"><FONT face=Georgia>分赃不均留下犯罪证据 &#8220;网银大盗&#8221;四作者被捕</FONT></A><FONT face=Georgia>&nbsp;这样一篇报道,我看了这个新闻后就觉得有问题(在 Sina 的评论被删掉了 <img alt='悲伤的脸' src=http://messenger.china.msn.com/Resource/emoticons/sad_smile.gif>):</FONT></P>
<P><FONT face=Georgia>1、网上银行不可能直接提取现金的。</FONT></P>
<P><FONT face=Georgia>2、如果简单地使用用户名和密码就可以访问网上银行,那网银提供的功能一般都比较简单,例如只是帐户查询类的交易,至多可以做同客户的多帐户之间转帐,如果要实现向他人帐户转帐,则一般需要数字证书。</FONT></P>
<P><FONT face=Georgia>工商银行的网上银行的说明太乱,没看明白,但似乎和招行的差不多(提供了不需要证书的大众版和需要证书的专业版),所以作案者想简单地只利用帐户名和密码就实现转帐功能,也不太可能。况且转帐都是有交易记录的,那有那么容易随便就能从别人的帐户里往自己帐户里转帐呀?</FONT></P>
<P><FONT face=Georgia>3、工商银行网上银行的登录表单中的密码域使用的是 ActiveX ,想用程序 Hook IE 窗口,再存取 ActiveX 的属性,也不太容易吧? (这个不确定,但肯定比简单的 HTML Form 难),难道是使用键盘记录软件? </FONT></P>
<P><FONT face=Georgia>4、整个新闻就象讲一个没有逻辑的故事,情节本身就有很多漏洞,也不合常理</FONT></P>
<P><FONT face=Georgia>Google 了一下&#8220;网银大盗&#8221;,发现人家工行都没怎么在意,倒是江民公司感觉很着急的样子,称病毒描上银行数千亿资金、高危害病毒、正在挑战中国网上银行安全体系 ... ,这情节让我想起了当年 CIH 病毒泛滥时病毒厂商的欢天喜地(当然还有那个硬盘逻辑锁 <img alt='吐舌笑脸' src=http://messenger.china.msn.com/Resource/emoticons/tongue_smile.gif>),江民公司的&#8220;安全专家&#8221;甚至给用户的建议是每次登录网上银行后,都要改一下密码,我晕呀 ... </FONT></P>
<P><FONT face=Georgia>我服了 ... ,我记得 CISSP 里专门有一 Chapter 是来讲职业道德的,太有必要了。</FONT></P>
<P><FONT face=Georgia>前两天参加&#8220;创建中国信息安全保障体系&#8221;暨中国第四届信息安全年会,很多做专业安全产品的公司没有来,反倒清一色的反病毒厂商当赞助,难道反病毒等于信息安全吗?唉</FONT></P>
							<p class="postfoot" align="right">
								2004-05-27 15:05:00
								by
								<a id="RecentPosts__ctl8_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/moslem/">moslem</a>
								【评论:8)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl9_Hyperlink2" href="http://blog.joycode.com/ghj/posts/22817.aspx">编码保存Excel2003与Excel 2000 Excel XP的不同</a></h3>
							<P>基于Office2003开发的应用程序,到office低版本的环境,比如 office 2000 office xp 。有时候就会产生问题。<BR>比如:下面基于Excel 2003 的保存Excel文件代码,在Excel xp ,Excel 2000 环境下执行就会有问题:</P>
<P>在VS.net中操作Excel2003的保存,可以用下面的代码来实现保存。</P>
<P>workbook.SaveAs("C:\\ghj.xls",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,<BR>Excel.XlSaveAsAccessMode.xlNoChange,<BR>Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);</P>
<P>但是如果你这时候的环境是Excel2000,或者Excel XP ,就会报错误:<BR>以下是错误信息:</P>
<P>---------------------------<BR>ExcelDos.exe - 公共语言运行库调试服务<BR>---------------------------<BR>应用程序生成了一个无法处理的异常。</P>
<P>进程 ID=0x8dc (2268),线程 ID=0x6c8 (1736)。</P>
<P>单击&#8220;确定&#8221;终止该应用程序。<BR>单击&#8220;取消&#8221;调试该应用程序。<BR>---------------------------<BR>确定&nbsp;&nbsp; 取消&nbsp;&nbsp; <BR>---------------------------</P>
<P>这时候,你就不能用 上面的SaveAs 函数了,而是要用 _SaveAs 函数:<BR>workbook._SaveAs("C:\\ghj.xls",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,<BR>Excel.XlSaveAsAccessMode.xlNoChange,<BR>Missing.Value,Missing.Value,Missing.Value,Missing.Value);<BR>这两个函数,除了函数名不同, 其他就是 _SaveAs 比 SaveAs 少一个参数。</P>
<P>显然:_SaveAs&nbsp;是兼容以前的版本, SaveAs 是office 2003 的新版本。</P>
<P>当然这点代码修改量是比较小的。而且,代码修改后,你针对office 2003产生的编译文件,office 2000 ,office xp 下仍然可以使用。</P>
<P>office 更低的版本,我手头没有环境,没有测试。<BR>有关操作Excel 的基本知识,请参看我的上一篇blog:<BR><A href="http://blog.joycode.com/ghj/posts/22722.aspx">http://blog.joycode.com/ghj/posts/22722.aspx</A></P>
							<p class="postfoot" align="right">
								2004-05-27 14:14:00
								by
								<a id="RecentPosts__ctl9_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/ghj/">蝈蝈俊</a>
								【评论:4)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl10_Hyperlink2" href="http://blog.joycode.com/roboo/posts/22782.aspx">Scintilla</a></h3>
							<TABLE border=0>
<TBODY>
<TR>
<TD width="70%">
<P>&nbsp;最近打算做一个支持多种语言的编辑器软件,思路是不仅要支持C/C++,Basic这些基本的通用语言,还要支持一些大家都不是很了解的语言,比如<A href="http://standards.ieee.org/catalog/olis/atlas.html">atlas</A>语言</P></TD>
<TD><IMG style="WIDTH: 244px; HEIGHT: 78px" height=78 src="http://www.scintilla.org/SciWord.jpg" width=203></TD></TR>
<TR>
<TD colSpan=2>为此要求对于语法加亮,编译,链接,调试都需要用接口来实现。share一些信息大家共勉。</TD></TR></TBODY></TABLE>
<P><A href="http://scintilla.sourceforge.net/ScintillaDoc.html">Scintilla</A> is a free source code editing component. It comes with complete source code and a <A href="http://scintilla.sourceforge.net/License.txt">license</A> that permits use in any free project or commercial product.</P>
<P>一些基于<A href="http://scintilla.sourceforge.net/ScintillaDoc.html">Scintilla</A> 的软件</P>
<P><A href="http://jedit.sourceforge.net/">jEdit</A> is a good Open Source syntax colouring editor written in and for Java. </P>
<P><A href="http://synedit.sourceforge.net/">SynEdit</A> is a Win32 edit control written in Delphi. </P>
<P>现在也已经有了基于<A href="http://scintilla.sourceforge.net/ScintillaDoc.html">Scintilla</A> 的支持.Net的版本</P>
<P><A href="http://sourceforge.net/projects/scide/">ScintillaNet </A>is an encapsulation of Scintilla for use within the .NET framework. </P>
<P>&nbsp;</P>
							<p class="postfoot" align="right">
								2004-05-27 11:22:00
								by
								<a id="RecentPosts__ctl10_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/roboo/">豆腐</a>
								【评论:6)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl11_Hyperlink2" href="http://blog.joycode.com/ninputer/posts/22763.aspx">被自己难倒了</a></h3>
							<P>本来想出第二个Visual Basic Quiz,结果问题出来以后自己也不会做,真是faint了。</P>
<P>在C#中,ref型的参数总是需要加&#8220;ref&#8221;来传递,因此,函数的两个重载版本可以仅通过ref或没有ref的不同来区分。比如有如下两个函数的重载版本:</P>
<P><FONT face="Courier New"><FONT color=#0000ff>public void</FONT> Test(<FONT color=#0000ff>int</FONT> x)<BR>{<BR>&nbsp;&nbsp;&nbsp; <STRONG><FONT color=#000080>Console</FONT></STRONG>.WriteLine("By Value");<BR>}<BR><BR><FONT color=#0000ff>public void</FONT> Test(<FONT color=#0000ff>ref int</FONT> x)<BR>{<BR>&nbsp;&nbsp;&nbsp; <STRONG><FONT color=#000080>Console</FONT></STRONG>.WriteLine("By Reference");<BR>}</FONT></P>
<P>在C#中调用可以通过Test(i)或Test(ref i)这样的语法来区分。但是在Visual Basic中,ByRef和ByVal是不用(也不允许)在传递参数的时候指定的,那么问题就是:如果C#写了这样的函数放在Dll里,在Visual Basic中应该如何调用正确的版本呢?</P>
<P>我进行了很多实验,比如用后期绑定啦、VBBinder搜索合适匹配重载项啦&#8230;&#8230;都无济于事,在VB中无法调用这两个重载版本中的任意一个。于是Quiz就变成Problem了,怎么才能解决它呢?</P>
							<p class="postfoot" align="right">
								2004-05-27 10:18:00
								by
								<a id="RecentPosts__ctl11_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/ninputer/">装配脑袋</a>
								【评论:5)】
							</p>
						</div>
					
						<div class="post">
							<h3>
								<a id="RecentPosts__ctl12_Hyperlink2" href="http://blog.joycode.com/jiangsheng/posts/22734.aspx">Javascript写的星际?</a></h3>
							<P><A href="http://www.sunnycbd.com/gm/sc.htm">http://www.sunnycbd.com/gm/sc.htm</A></P>
<P>&nbsp;</P>
							<p class="postfoot" align="right">
								2004-05-27 05:37:00
								by
								<a id="RecentPosts__ctl12_Hyperlink3" class="clsSubText" href="http://blog.joycode.com/jiangsheng/">蒋晟.Net</a>
								【评论:23)】
							</p>
						</div>
					

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -