??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美色欧美亚洲高清在线视频,久久久久久久网站,欧美精品在线一区http://www.shnenglu.com/oomusou/category/2858.html写程序是一件很快乐的事 Since 2006/10/22zh-cnMon, 19 May 2008 17:29:59 GMTMon, 19 May 2008 17:29:59 GMT60STL的std::vector?NET的ArrayListQ何者速度较快? http://www.shnenglu.com/oomusou/archive/2006/11/12/15055.html?OO无双?OO无双Sun, 12 Nov 2006 03:17:00 GMThttp://www.shnenglu.com/oomusou/archive/2006/11/12/15055.htmlhttp://www.shnenglu.com/oomusou/comments/15055.htmlhttp://www.shnenglu.com/oomusou/archive/2006/11/12/15055.html#Feedback7http://www.shnenglu.com/oomusou/comments/commentRss/15055.htmlhttp://www.shnenglu.com/oomusou/services/trackbacks/15055.html之前我发表了如何用C++开发ASP.NETQ很多h怀疑用C++开发ASP.NET有什么好?执行速度上有M优势?W一个问题将在本随W解{,至于执行速度Q我认ؓ既然都是managed codeQC++/CLI、C#、VB应该都一样快Q但C++/CLI有个特色Q就是能在managed code中写unmanaged codeQ类似C#的unsafe codeQ假如在C++/CLI中用unmanaged codeQ是否能在速度上占便宜?我写了以下的E序作测试?br />

Z克服array必须事先宣告大小的不便,STL?NET都有解决的方式,在STL的container当中Q速度最快的是std::vectorQ?NET当中是ArrayListQ所以我x试在同样的程序中Q若使用unmanaged 的std::vector是否会比managed ArrayList快?br />

 1 /*  
 2 (C) OOMusou 2006  http://oomusou.cnblogs.com
 3
 4 Filename    : VectorVsArrayList.cpp
 5 Compiler    : Visual C++ 8.0
 6 Description : Demo std::vector and ArrayList in C++/CLI
 7 */

 8 #include  " stdafx.h "
 9 #include  < vector >
10 #include  < ctime >
11 #include  < iostream >
12
13 using   namespace  System;
14 using   namespace  System::Collections;
15
16 int  main()
17 {
18      //  Use STL std::vector
19     clock_t t1  =  clock();
20     
21     std::vector < int >  ivec;
22
23      for ( int  i = 0 ; i  !=   10000000 ++ i)  {
24       ivec.push_back(i);
25     }

26
27     t1  =  clock()  -  t1;
28
29     std::cout  <<   " std::vector :  "   <<  ( double )t1 / CLOCKS_PER_SEC  <<   "  sec "   <<  std::endl;
30
31
32      //  Use .NET ArrayList
33     clock_t t2  =  clock();
34
35     ArrayList ^  al  =  gcnew ArrayList;
36      for ( int  i = 0 ; i  !=   10000000 ++ i)  {
37       al -> Add(i);
38     }

39     t2  =  clock()  -  t2;
40
41     std::cout  <<   " .NET ArrayList :  "   <<  ( double )t2 / CLOCKS_PER_SEC  <<   "  sec "   <<  std::endl;
42
43      return   0 ;
44 }

执行l果

1 std::vector :  5.618  sec
2 .NET ArrayList :  4.336  sec
3 請按L늹U? . .


执行l果令我讶异Q我原本预期unmanaged的std::vector应该会比较快Q但l果却是managed的ArrayList较快Q我觉得可能的原因是Qmanaged的数据放在CLR内,而unmanaged数据攑֜不同的地方,当unmanaged的std::vector要在managed的执行环境中昄Ӟq要l过marshaling的动作,所以浪费了一些时_cM?NET中用COM的dllӞ也必ȝqmarshalingQ所以速度较慢?br />

回到我第一个问题,用C++开发ASP.NET有什么好?在这个简单的E序里可以发玎ͼC++/CLI的最大特Ԍ让你可以managed和unmanagedE序写在一P同时使用.NET Framework和传lC++的libraryQ如STL、boostQ这是C#所做不到的Q假如你的工E领域已l有很多libraryQ是用C/C++写的Q可能是10几年前的东西Q目前根本没有C#版本的libraryQ而你又急需q些library的function开?NETE序QC++/CLI很方便了,让你同时拥抱C/C++ library?NET FrameworkQ这也是Microsoft开发C++/CLI的原因?br />

l论
在C++/CLI开发managed codeQ执行速度不会比C#、VB快,虽然C++/CLI可以开发unmanaged codeQ但?NET Framework有相对应的支持时Q应先考虑.NET FrameworkQ然后再考虑其它C++自己的libraryQ当然C++/CLI不见的适合所有开发h员,但对于一些开发h员是很方便的?br />



?OO无双 2006-11-12 11:17 发表评论
]]>
如何用C++开发ASP.NET? http://www.shnenglu.com/oomusou/archive/2006/10/22/14002.html?OO无双?OO无双Sun, 22 Oct 2006 04:08:00 GMThttp://www.shnenglu.com/oomusou/archive/2006/10/22/14002.htmlhttp://www.shnenglu.com/oomusou/comments/14002.htmlhttp://www.shnenglu.com/oomusou/archive/2006/10/22/14002.html#Feedback1http://www.shnenglu.com/oomusou/comments/commentRss/14002.htmlhttp://www.shnenglu.com/oomusou/services/trackbacks/14002.htmlASP.NET with Managed C++)Q但Managed C++和C++/CLI的语法不太一P原本的范例无法compile成功Q经q一D늠I之后,l于扑ֈ了用C++/CLI撰写ASP.NET的方式。在q篇文章中,我将一步步的demo如何用C++/CLI开发ASP.NETE序?

 

首先Q徏立一个新的Web SiteQ由于Visual Studio 2005在ASP.NET没支持C++Q所以徏立Web SiteӞ先随侉K一个语a建立?br />


建立一个Web Form名ؓHelloWorld.aspxQ请不要选择Place code in separate fileQ这样Visual Studio 2005会将Event Handler攑֜aspx文g中,可以让aspx.cpp省掉event宣告的程序?br />


使用Web Form Designer做出以下的介面?br />


在Page Directive部分Q将Language=”C#”删除,加上AutoEventWireup="true" Inherits="HelloWorld"QHelloWord为C++的Class名称。也要将<script runat="server"></script>部分删除?br />
 1<%@ Page AutoEventWireup="true" Inherits="HelloWorld" %>
 2
 3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4<html xmlns="http://www.w3.org/1999/xhtml">
 5<head runat="server">
 6  <title>Untitled Page</title>
 7</head>
 8<body>
 9  <form id="form1" runat="server">
10    <div>
11      Using C++/CLI in ASP.NET<br />
12      <br />
13      <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
14      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
15  </form>
16</body>
17</html>
18

建立C++ ProjectQ左侧选择CLRQ此?NET platform的ProjectQ右侧选择CLR Empty Project卛_Q切C要选择Class LibraryQ这样会多出很多我们不需要的案Q而且最后我们也不会用Visual Studio 2005来compileQ会使用Command Prompt的方式compile?br />


建立HelloWorld.aspx.cpp?br />



加入C++/CLIE序。C++/CLI对ANSI C++做了些扩充,Z和C++内徏的型别与Class做区别,Managed的Class需加上ref modifierQ而Managed的Object要加上^。最重要的,IDE支援Intellisense方式写ASP.NET?br />
 1#using <system.dll>
 2#using <mscorlib.dll>
 3#using <system.web.dll>
 4
 5using namespace System;
 6using namespace System::Web::UI::WebControls;
 7
 8public ref class HelloWorld : public System::Web::UI::Page {
 9protected:
10  Button^ Button1;
11  Label^  Label1;
12
13public:
14  void Button1_Click(Object^ sender, EventArgs^ e) {
15    this->Label1->Text = "Hello World";
16    return;
17  }

18}
;

使用Visual Studio 2005 Command PromptR譯C++/CLI?br />
 

使用以下的語法編譯C++/CLI?br />
1cl /clr HelloWorld.aspx.cpp /link /dll /out:HelloWorld.dll


最后只要将HelloWorld.aspx攑ֈc:\Inetpub\wwwroot\下,HelloWorld.dll攑ֈc:\Inetpub\wwwroot\bin\下,完成deployment?br />

l论

很多C++无法开发ASP.NETQANSI C++的确不能Q但C++/CLI则可以,事实上,M.NET下的语言都可以开发ASP.NETQ虽然Visual Studio 2005工具不见的支持,但只要透过一些小技巧,你依然可以用妛_Ƣ的.NET语言开发ASP.NET?br />

Reference
ASP.NET with Managed C++ , Soliant, The  code project.



?OO无双 2006-10-22 12:08 发表评论
]]>
þһ| þùŷպƷ| þþƷ۲ӰԺ| Ӱһþþþó˾Ʒۺ | һþ֪ۺϾþ| ޹ۺϾþ | aëƬþ| ëƬþþþþùëƬ| Ʒþþþþ| Ʒ˾þô߽ɫҳ| ձþþþƷĻ| vĻþ| ҹҹݺݾþAV| Ʒþþþþ| aaþ| ֻоƷþ| ƷþþĻһ| 99þþƷ鶹| þԭav| ߳߳þþ| þþƷWWW456C0M| þþþAVƬ| ŷպƷþ | ھƷþþþӰԺ| ŷþþþþ| þþþƷר| ݹƷþþþþ| þþƷӰѿ | þþƷĻ| ޹˾Ʒþþþþۺ | ŷպƷþ| 91޹˾þþƷַ| ޹ƷþSM | ھƷþþþþþӰ鶹 | þӰԺۺϾƷ| þþAVҰ| ˼˼þ99ֻƵƷ66| Ƭѹۿþ| þۺϾþڹ| þþƷԭ| ҹþþþþýӰ|