用C++/CLI编写ASP.Net的后台代码
2013-08-15 21:10
344 查看
(本文借鉴自http://www.cppblog.com/oomusou/archive/2006/10/22/14002.html,但有许多修改……)
默认情况下,Visual Studio里建立ASP.Net网站的时候只能选择VB或C#作为后台语言。但是,只要是支持.Net的语言都可以开发ASP.Net,只是麻烦一些而已。我个人因为语言习惯而选择了C++/CLI,这篇文章里,我将介绍用C++/CLI开发ASP.Net的各种方式。
首先是新建项目,其实完全可以不用项目的,但是VS的ASPX设计器还是很强大的,所以我们需要它……你也可以直接用DreamWaver之类的东西写ASPX
这里语言可以任选,反正我们也用不到。
然后在设计器里写界面……由于是实例用我就写了这么个简陋的界面:
这还没结束,切换到代码视图,在开头部分将Language=”C#”删除,加上AutoEventWireup="true" Inherits="HelloWorld",HelloWord为C++的Class名称。也要将<script runat="server"></script>部分删除
给ASP.Net控件加上事件处理函数名,但如果在属性窗口中创建,会自动生成<script runat="server"></script>标记,务必记得删除其中全部内容。
在当前解决方案中新建C++ CLR DLL项目:
然后在cpp文件中编写事件处理程序,只要类名和ASPX中Inherits中指定的名称一致就行。其实可以将类定义写到.h文件里,只在cpp里写函数,这样更符合定义与实现分离的原则。
注意命名空间的引用和类的继承。(其实上面几个#using我也不知道有什么用……但留着总没坏处)
选择Release配置,然后编译项目……别想着调试了,目前我还没发现调试的方法,这是一大弊端。
或者你想使用命令行编译也可以……从开始菜单->MIcrosoft Visual Studio 20XX->Visual Studio Tools->VS20XX x64(x86)本机命令提示,命令行语法如下:
记住:一定要将工作目录切换到源文件所在目录!因为命令行编译的默认输出位置不是源文件位置,而是当前目录!
好了,最后把ASPX文件扔到IIS目录下,生成的dll文件扔到IIS的bin目录下,就可以测试了!
默认情况下,Visual Studio里建立ASP.Net网站的时候只能选择VB或C#作为后台语言。但是,只要是支持.Net的语言都可以开发ASP.Net,只是麻烦一些而已。我个人因为语言习惯而选择了C++/CLI,这篇文章里,我将介绍用C++/CLI开发ASP.Net的各种方式。
首先是新建项目,其实完全可以不用项目的,但是VS的ASPX设计器还是很强大的,所以我们需要它……你也可以直接用DreamWaver之类的东西写ASPX
这里语言可以任选,反正我们也用不到。
然后在设计器里写界面……由于是实例用我就写了这么个简陋的界面:
这还没结束,切换到代码视图,在开头部分将Language=”C#”删除,加上AutoEventWireup="true" Inherits="HelloWorld",HelloWord为C++的Class名称。也要将<script runat="server"></script>部分删除
<%@ Page AutoEventWireup="true" Inherits="HelloWorld" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>HelloWorld</title> </head> <body> <form id="form1" runat="server"> <div> Using C++ in ASP.NET<br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Click" OnClick="Button1_Click" /> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> </div> </form> </body> </html>
给ASP.Net控件加上事件处理函数名,但如果在属性窗口中创建,会自动生成<script runat="server"></script>标记,务必记得删除其中全部内容。
在当前解决方案中新建C++ CLR DLL项目:
然后在cpp文件中编写事件处理程序,只要类名和ASPX中Inherits中指定的名称一致就行。其实可以将类定义写到.h文件里,只在cpp里写函数,这样更符合定义与实现分离的原则。
#using <system.dll> #using <mscorlib.dll> #using <system.web.dll> using namespace System; using namespace System::Web::UI::WebControls; public ref class HelloWorld:public System::Web::UI::Page { protected: Button^ Button1; Label^ Label1; TextBox^ TextBox1; public: void Button1_Click(Object^ sender,EventArgs^ e) { this->Label1->Text="Hello,"+TextBox1->Text+"!"; return; } };
注意命名空间的引用和类的继承。(其实上面几个#using我也不知道有什么用……但留着总没坏处)
选择Release配置,然后编译项目……别想着调试了,目前我还没发现调试的方法,这是一大弊端。
或者你想使用命令行编译也可以……从开始菜单->MIcrosoft Visual Studio 20XX->Visual Studio Tools->VS20XX x64(x86)本机命令提示,命令行语法如下:
cl /clr HelloWorld.aspx.cpp /link /out:HelloWorld.dll
记住:一定要将工作目录切换到源文件所在目录!因为命令行编译的默认输出位置不是源文件位置,而是当前目录!
好了,最后把ASPX文件扔到IIS目录下,生成的dll文件扔到IIS的bin目录下,就可以测试了!
相关文章推荐
- asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示例代码)
- ASP.NET中前台javascript与后台代码调用
- asp.net后台代码动态引用添加JS和css文件
- 开发代码编写规范文档(适用于asp.net_C#)
- ASP.NET后台代码调用前台javascript脚本的方法
- Asp.net页面生命周期详解任我行(1)-小试牛刀,编写页面代码
- (转)ASP.NET前台代码绑定后台变量方法总结
- asp.net中怎么把前台脚本中的变量值传递给后台代码?
- ASP.NET通过Global.asax和Timer定时器 定时调用WebService 运行后台代码
- 【转】ASP.NET前台代码绑定后台变量方法总结
- ASP.NET 提示框显示及自动隐藏(jquery+后台代码)
- ASP.NET中javascript与后台代码如何通信,相互调用?
- ASP.NET中前台javascript与后台代码调用
- asp.net Chart画图后台代码
- 求用ASP.NET(VB)编写收发EMAIL的完整代码
- ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
- ASP.NET中前台javascript与后台代码调用
- ASP.NET前台代码绑定后台变量方法总结
- Asp.net编程 Asp.net代码编写方式(后置代码和内嵌代码)
- 关于在右下脚弹出窗口javascript代码,并用ASP.NET在后台调用(原创)