﻿<?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>C++博客-真 OO无双之真乱舞书-随笔分类-[.NET] C++/CLI</title><link>http://www.cppblog.com/oomusou/category/2858.html</link><description>写程序是一件很快乐的事 Since 2006/10/22</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 17:29:59 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 17:29:59 GMT</pubDate><ttl>60</ttl><item><title>STL的std::vector和.NET的ArrayList，何者速度较快? </title><link>http://www.cppblog.com/oomusou/archive/2006/11/12/15055.html</link><dc:creator>真 OO无双</dc:creator><author>真 OO无双</author><pubDate>Sun, 12 Nov 2006 03:17:00 GMT</pubDate><guid>http://www.cppblog.com/oomusou/archive/2006/11/12/15055.html</guid><wfw:comment>http://www.cppblog.com/oomusou/comments/15055.html</wfw:comment><comments>http://www.cppblog.com/oomusou/archive/2006/11/12/15055.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/oomusou/comments/commentRss/15055.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/oomusou/services/trackbacks/15055.html</trackback:ping><description><![CDATA[
		<p>之前我发表了<a href="http://www.cnblogs.com/oomusou/archive/2006/10/22/536238.html" target="_blank"><font color="#666666">如何用C++开发ASP.NET</font></a>，很多人怀疑用C++开发ASP.NET有什么好处?执行速度上有任何优势吗?第一个问题将在本篇随笔解答，至于执行速度，我认为既然都是managed code，C++/CLI、C#、VB应该都一样快，但C++/CLI有个特色，就是能在managed code中写unmanaged code，类似C#的unsafe code，假如在C++/CLI中使用unmanaged code，是否能在速度上占便宜呢?我写了以下的程序作测试。<br /><br /><br />为了克服array必须事先宣告大小的不便，STL和.NET都有解决的方式，在STL的container当中，速度最快的就是std::vector，而.NET当中就是ArrayList，所以我想测试在同样的程序中，若使用unmanaged 的std::vector是否会比managed ArrayList快。<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span>
				<img id="Codehighlighter1_0_171_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_171_Open_Text.style.display='none'; Codehighlighter1_0_171_Closed_Image.style.display='inline'; Codehighlighter1_0_171_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_0_171_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_171_Closed_Text.style.display='none'; Codehighlighter1_0_171_Open_Image.style.display='inline'; Codehighlighter1_0_171_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span id="Codehighlighter1_0_171_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
				<span id="Codehighlighter1_0_171_Open_Text">
						<span style="COLOR: #008000">/*</span>
						<span style="COLOR: #008000"> <br /></span>
						<span style="COLOR: #008080"> 2</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />(C) OOMusou 2006 </span>
						<span style="COLOR: #008000; TEXT-DECORATION: underline">http://oomusou.cnblogs.com</span>
						<span style="COLOR: #008000">
								<br />
						</span>
						<span style="COLOR: #008080"> 3</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080"> 4</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />Filename    : VectorVsArrayList.cpp<br /></span>
						<span style="COLOR: #008080"> 5</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />Compiler    : Visual C++ 8.0<br /></span>
						<span style="COLOR: #008080"> 6</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />Description : Demo std::vector and ArrayList in C++/CLI<br /></span>
						<span style="COLOR: #008080"> 7</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />
						</span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 8</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />#include </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">stdafx.h</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 9</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />#include </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">vector</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">10</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />#include </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">ctime</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">11</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />#include </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">iostream</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">12</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080">13</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">using</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">namespace</span>
				<span style="COLOR: #000000"> System;<br /></span>
				<span style="COLOR: #008080">14</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">using</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">namespace</span>
				<span style="COLOR: #000000"> System::Collections;<br /></span>
				<span style="COLOR: #008080">15</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080">16</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> main()<br /></span>
				<span style="COLOR: #008080">17</span>
				<span style="COLOR: #000000">
						<img id="Codehighlighter1_322_876_Open_Image" onclick="this.style.display='none'; Codehighlighter1_322_876_Open_Text.style.display='none'; Codehighlighter1_322_876_Closed_Image.style.display='inline'; Codehighlighter1_322_876_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_322_876_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_322_876_Closed_Text.style.display='none'; Codehighlighter1_322_876_Open_Image.style.display='inline'; Codehighlighter1_322_876_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span id="Codehighlighter1_322_876_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cnblogs.com/Images/dot.gif" />
				</span>
				<span id="Codehighlighter1_322_876_Open_Text">
						<span style="COLOR: #000000">{<br /></span>
						<span style="COLOR: #008080">18</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000"> Use STL std::vector</span>
						<span style="COLOR: #008000">
								<br />
						</span>
						<span style="COLOR: #008080">19</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    clock_t t1 </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> clock();<br /></span>
						<span style="COLOR: #008080">20</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span>
						<span style="COLOR: #008080">21</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    std::vector</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #0000ff">int</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000"> ivec;<br /></span>
						<span style="COLOR: #008080">22</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">23</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_447_478_Open_Image" onclick="this.style.display='none'; Codehighlighter1_447_478_Open_Text.style.display='none'; Codehighlighter1_447_478_Closed_Image.style.display='inline'; Codehighlighter1_447_478_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_447_478_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_447_478_Closed_Text.style.display='none'; Codehighlighter1_447_478_Open_Image.style.display='inline'; Codehighlighter1_447_478_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">for</span>
						<span style="COLOR: #000000">(</span>
						<span style="COLOR: #0000ff">int</span>
						<span style="COLOR: #000000"> i</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">; i </span>
						<span style="COLOR: #000000">!=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">10000000</span>
						<span style="COLOR: #000000">; </span>
						<span style="COLOR: #000000">++</span>
						<span style="COLOR: #000000">i) </span>
						<span id="Codehighlighter1_447_478_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnblogs.com/Images/dot.gif" />
						</span>
						<span id="Codehighlighter1_447_478_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">24</span>
								<span style="COLOR: #000000">
										<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />      ivec.push_back(i);<br /></span>
								<span style="COLOR: #008080">25</span>
								<span style="COLOR: #000000">
										<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">26</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">27</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    t1 </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> clock() </span>
						<span style="COLOR: #000000">-</span>
						<span style="COLOR: #000000"> t1;<br /></span>
						<span style="COLOR: #008080">28</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">29</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    std::cout </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">std::vector : </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> (</span>
						<span style="COLOR: #0000ff">double</span>
						<span style="COLOR: #000000">)t1</span>
						<span style="COLOR: #000000">/</span>
						<span style="COLOR: #000000">CLOCKS_PER_SEC </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> sec</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> std::endl;<br /></span>
						<span style="COLOR: #008080">30</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">31</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">32</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000"> Use .NET ArrayList</span>
						<span style="COLOR: #008000">
								<br />
						</span>
						<span style="COLOR: #008080">33</span>
						<span style="COLOR: #008000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    clock_t t2 </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> clock();<br /></span>
						<span style="COLOR: #008080">34</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">35</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    ArrayList</span>
						<span style="COLOR: #000000">^</span>
						<span style="COLOR: #000000"> al </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> gcnew ArrayList;<br /></span>
						<span style="COLOR: #008080">36</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_721_745_Open_Image" onclick="this.style.display='none'; Codehighlighter1_721_745_Open_Text.style.display='none'; Codehighlighter1_721_745_Closed_Image.style.display='inline'; Codehighlighter1_721_745_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_721_745_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_721_745_Closed_Text.style.display='none'; Codehighlighter1_721_745_Open_Image.style.display='inline'; Codehighlighter1_721_745_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">for</span>
						<span style="COLOR: #000000">(</span>
						<span style="COLOR: #0000ff">int</span>
						<span style="COLOR: #000000"> i</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">; i </span>
						<span style="COLOR: #000000">!=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">10000000</span>
						<span style="COLOR: #000000">; </span>
						<span style="COLOR: #000000">++</span>
						<span style="COLOR: #000000">i) </span>
						<span id="Codehighlighter1_721_745_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnblogs.com/Images/dot.gif" />
						</span>
						<span id="Codehighlighter1_721_745_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">37</span>
								<span style="COLOR: #000000">
										<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />      al</span>
								<span style="COLOR: #000000">-&gt;</span>
								<span style="COLOR: #000000">Add(i);<br /></span>
								<span style="COLOR: #008080">38</span>
								<span style="COLOR: #000000">
										<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">39</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    t2 </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> clock() </span>
						<span style="COLOR: #000000">-</span>
						<span style="COLOR: #000000"> t2;<br /></span>
						<span style="COLOR: #008080">40</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">41</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    std::cout </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">.NET ArrayList : </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> (</span>
						<span style="COLOR: #0000ff">double</span>
						<span style="COLOR: #000000">)t2</span>
						<span style="COLOR: #000000">/</span>
						<span style="COLOR: #000000">CLOCKS_PER_SEC </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> sec</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">&lt;&lt;</span>
						<span style="COLOR: #000000"> std::endl;<br /></span>
						<span style="COLOR: #008080">42</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
						</span>
						<span style="COLOR: #008080">43</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">;<br /></span>
						<span style="COLOR: #008080">44</span>
						<span style="COLOR: #000000">
								<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
		<p>执行结果</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080">1</span>
				<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">std::vector : </span>
				<span style="COLOR: #000000">5.618</span>
				<span style="COLOR: #000000"> sec<br /></span>
				<span style="COLOR: #008080">2</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />.NET ArrayList : </span>
				<span style="COLOR: #000000">4.336</span>
				<span style="COLOR: #000000"> sec<br /></span>
				<span style="COLOR: #008080">3</span>
				<span style="COLOR: #000000">
						<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />請按任意鍵繼續 . . .</span>
		</div>
		<p>
				<br />执行结果令我讶异，我原本预期unmanaged的std::vector应该会比较快，但结果却是managed的ArrayList较快，我觉得可能的原因是，managed的数据放在CLR内，而unmanaged数据放在不同的地方，当unmanaged的std::vector要在managed的执行环境中显示时，还要经过marshaling的动作，所以浪费了一些时间，类似在.NET中使用COM的dll时，也必须经过marshaling，所以速度较慢。<br /><br /><br />回到我第一个问题，用C++开发ASP.NET有什么好处?在这个简单的程序里可以发现，C++/CLI的最大特色，让你可以将managed和unmanaged程序写在一起，同时使用.NET Framework和传统C++的library，如STL、boost，这是C#所做不到的，假如你的工程领域已经有很多library，是用C/C++写的，可能是10几年前的东西，目前根本没有C#版本的library，而你又急需这些library的function开发.NET程序，C++/CLI就很方便了，让你同时拥抱C/C++ library和.NET Framework，这也是Microsoft开发C++/CLI的原因。<br /><br /><br />结论<br />在C++/CLI开发managed code，执行速度不会比C#、VB快，虽然C++/CLI可以开发unmanaged code，但若.NET Framework有相对应的支持时，应先考虑.NET Framework，然后再考虑其它C++自己的library，当然C++/CLI不见的适合所有开发人员，但对于一些开发人员是很方便的。<br /></p>
<img src ="http://www.cppblog.com/oomusou/aggbug/15055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/oomusou/" target="_blank">真 OO无双</a> 2006-11-12 11:17 <a href="http://www.cppblog.com/oomusou/archive/2006/11/12/15055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何用C++开发ASP.NET? </title><link>http://www.cppblog.com/oomusou/archive/2006/10/22/14002.html</link><dc:creator>真 OO无双</dc:creator><author>真 OO无双</author><pubDate>Sun, 22 Oct 2006 04:08:00 GMT</pubDate><guid>http://www.cppblog.com/oomusou/archive/2006/10/22/14002.html</guid><wfw:comment>http://www.cppblog.com/oomusou/comments/14002.html</wfw:comment><comments>http://www.cppblog.com/oomusou/archive/2006/10/22/14002.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/oomusou/comments/commentRss/14002.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/oomusou/services/trackbacks/14002.html</trackback:ping><description><![CDATA[在Visual Studio .NET 2002刚出来时，我就曾经听过同事说过他用C++写过ASP.NET，不过由于当时才刚刚学C#，还不会C++，所以也没问他是怎么写的，一直到最近开始学C++，发现在Visual Studio 2005可以用C++/CLI开发Windows Form，但却无法开发ASP.NET，实在令人遗憾，在网络上也只在Code Project谈到在Visual Studio .NET 2002下用Managed C++写ASP.NET(<a href="http://www.codeproject.com/managedcpp/helloworldmc.asp" target="_blank"><font color="#666666">ASP.NET with Managed C++</font></a>)，但Managed C++和C++/CLI的语法不太一样，原本的范例无法compile成功，经过一段研究之后，终于找到了用C++/CLI撰写ASP.NET的方式。在这篇文章中，我将一步步的demo如何用C++/CLI开发ASP.NET程序。 <br /><br /><img height="273" alt="" src="http://www.cnblogs.com/images/cnblogs_com/oomusou/cppHelloWorld1.jpg" width="368" border="0" /> <br /><br />首先，建立一个新的Web Site，由于Visual Studio 2005在ASP.NET没支持C++，所以建立Web Site时，先随便选一个语言建立。<br /><br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/oomusou/cppHelloWorld23.jpg" border="0" /><br /><br />建立一个Web Form名为HelloWorld.aspx，请不要选择Place code in separate file，这样Visual Studio 2005会将Event Handler放在aspx文件中，可以让aspx.cpp省掉event宣告的程序。<br /><br /><img height="118" alt="" src="http://www.cnblogs.com/images/cnblogs_com/oomusou/cppHelloWorld33.jpg" width="549" border="0" /><br /><br />使用Web Form Designer做出以下的介面。<br /><br /><img height="191" alt="" src="http://www.cnblogs.com/images/cnblogs_com/oomusou/cppHelloWorld4.jpg" width="267" border="0" /><br /><br />在Page Directive部分，将Language=”C#”删除，加上AutoEventWireup="true" Inherits="HelloWorld"，HelloWord为C++的Class名称。也要将&lt;script runat="server"&gt;&lt;/script&gt;部分删除。<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img id="Codehighlighter1_2_53_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_53_Open_Text.style.display='none'; Codehighlighter1_2_53_Closed_Image.style.display='inline'; Codehighlighter1_2_53_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_2_53_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2_53_Closed_Text.style.display='none'; Codehighlighter1_2_53_Open_Image.style.display='inline'; Codehighlighter1_2_53_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id="Codehighlighter1_2_53_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2_53_Open_Text"><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@ Page AutoEventWireup</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">true</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> Inherits</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">HelloWorld</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> </span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html </span><span style="COLOR: #ff0000">xmlns</span><span style="COLOR: #0000ff">="http://www.w3.org/1999/xhtml"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head </span><span style="COLOR: #ff0000">runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Untitled Page</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">form </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="form1"</span><span style="COLOR: #ff0000"> runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />      Using C++/CLI in ASP.NET</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />      </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />      </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:Button </span><span style="COLOR: #ff0000">ID</span><span style="COLOR: #0000ff">="Button1"</span><span style="COLOR: #ff0000"> runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #ff0000"> OnClick</span><span style="COLOR: #0000ff">="Button1_Click"</span><span style="COLOR: #ff0000"> Text</span><span style="COLOR: #0000ff">="Button"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />      </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:Label </span><span style="COLOR: #ff0000">ID</span><span style="COLOR: #0000ff">="Label1"</span><span style="COLOR: #ff0000"> runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #ff0000"> Text</span><span style="COLOR: #0000ff">="Label"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">asp:Label</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div><br />建立C++ Project，左侧选择CLR，此为.NET platform的Project，右侧选择CLR Empty Project即可，切记不要选择Class Library，这样会多出很多我们不需要的档案，而且最后我们也不会用Visual Studio 2005来compile，会使用Command Prompt的方式compile。<br /><br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/oomusou/cppHelloWorld6.jpg" border="0" /><br /><br />建立HelloWorld.aspx.cpp。<br /><br /><img height="527" alt="" src="http://www.cnblogs.com/images/cnblogs_com/oomusou/cppHelloWorld71.jpg" width="787" border="0" /><br /><br /><br />加入C++/CLI程序。C++/CLI对ANSI C++做了些扩充，为了和C++内建的型别与Class做区别，Managed的Class需加上ref modifier，而Managed的Object要加上^。最重要的，IDE支援Intellisense方式写ASP.NET。<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">#</span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">system.dll</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />#</span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">mscorlib.dll</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />#</span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">system.web.dll</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> System;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> System::Web::UI::WebControls;<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img id="Codehighlighter1_197_365_Open_Image" onclick="this.style.display='none'; Codehighlighter1_197_365_Open_Text.style.display='none'; Codehighlighter1_197_365_Closed_Image.style.display='inline'; Codehighlighter1_197_365_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_197_365_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_197_365_Closed_Text.style.display='none'; Codehighlighter1_197_365_Open_Image.style.display='inline'; Codehighlighter1_197_365_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HelloWorld : </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> System::Web::UI::Page </span><span id="Codehighlighter1_197_365_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_197_365_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  Button</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000"> Button1;<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  Label</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">  Label1;<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img id="Codehighlighter1_307_363_Open_Image" onclick="this.style.display='none'; Codehighlighter1_307_363_Open_Text.style.display='none'; Codehighlighter1_307_363_Closed_Image.style.display='inline'; Codehighlighter1_307_363_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_307_363_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_307_363_Closed_Text.style.display='none'; Codehighlighter1_307_363_Open_Image.style.display='inline'; Codehighlighter1_307_363_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Button1_Click(Object</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000"> sender, EventArgs</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000"> e) </span><span id="Codehighlighter1_307_363_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_307_363_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Label1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Text </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello World</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000">;</span></div><br />使用Visual Studio 2005 Command Prompt編譯C++/CLI。<br /><br /> <img height="183" alt="" src="http://www.cnblogs.com/images/cnblogs_com/oomusou/cppHelloWorld8.jpg" width="699" border="0" /><br /><br />使用以下的語法編譯C++/CLI。<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">cl </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">clr HelloWorld.aspx.cpp </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">link </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">dll </span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">:HelloWorld.dll</span></div><p><br />最后只要将HelloWorld.aspx放到c:\Inetpub\wwwroot\下，HelloWorld.dll放到c:\Inetpub\wwwroot\bin\下，就完成deployment。<br /><br /><br />结论 <br /><br />很多人说C++无法开发ASP.NET，ANSI C++的确不能，但C++/CLI则可以，事实上，任何.NET下的语言都可以开发ASP.NET，虽然Visual Studio 2005工具不见的支持，但只要透过一些小技巧，你依然可以用妳喜欢的.NET语言开发ASP.NET。<br /><br /><br />Reference<br /><a href="http://www.codeproject.com/managedcpp/helloworldmc.asp" target="_blank"><font color="#666666">ASP.NET with Managed C++</font></a> , Soliant, The  code project.</p><img src ="http://www.cppblog.com/oomusou/aggbug/14002.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/oomusou/" target="_blank">真 OO无双</a> 2006-10-22 12:08 <a href="http://www.cppblog.com/oomusou/archive/2006/10/22/14002.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>