P/Invoke能够在asp.net 中使用哦,是的,今天have some try le. 1
2
3using System;
4using System.Collections;
5using System.ComponentModel;
6using System.Data;
7using System.Drawing;
8using System.Web;
9using System.Web.SessionState;
10using System.Web.UI;
11using System.Web.UI.WebControls;
12using System.Web.UI.HtmlControls;
13
14using System.Runtime.InteropServices;
15using System.Windows.Forms;
16
17namespace Test_MyService
18{
19 /**//// <summary>
20 /// WebForm1 的摘要说明。
21 /// </summary>
22 public class WebForm1 : System.Web.UI.Page
23 {
24 protected System.Web.UI.WebControls.TextBox TextBox1;
25 protected System.Web.UI.WebControls.Label Label1;
26 protected System.Web.UI.WebControls.Button Button1;
27 protected System.Web.UI.WebControls.TextBox TextBox2;
28 protected System.Web.UI.WebControls.TextBox txtQ;
29 protected System.Web.UI.WebControls.TextBox txtD;
30
31 localhost.ServiceTest myservice = new Test_MyService.localhost.ServiceTest();
32
33 private void Page_Load(object sender, System.EventArgs e)
34 {
35 // 在此处放置用户代码以初始化页面
36
37 }
38
39 [DllImport("user32.dll", CharSet=CharSet.Ansi)]
40 public static extern int MessageBox(int h, string m,
41 string c, int type);
42
43 [DllImport("user32.dll", CharSet=CharSet.Ansi)]
44 public static extern Boolean MessageBeep(UInt32 beepType);
45
46 [DllImport("Kernel32.dll", SetLastError=true)]
47 static extern Boolean Beep(UInt32 frequency, UInt32 duration);
48
49
50 Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
51 override protected void OnInit(EventArgs e)
52 {
53 //
54 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
55 //
56 InitializeComponent();
57 base.OnInit(e);
58 }
59
60 /**//// <summary>
61 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
62 /// 此方法的内容。
63 /// </summary>
64 private void InitializeComponent()
65 {
66 this.Button1.Click += new System.EventHandler(this.Button1_Click);
67 this.Load += new System.EventHandler(this.Page_Load);
68
69 }
70 #endregion
71
72 private void Button1_Click(object sender, System.EventArgs e)
73 {
74 this.TextBox2.Text = myservice.Who(this.TextBox1.Text);
75
76// string pText = "Hello World!";
77// string pCaption = "PInvoke Test";
78// MessageBox(0, pText, pCaption, 0);
79
80 //MessageBeep(0x00000010);
81 Beep(Convert.ToUInt32(txtQ.Text),Convert.ToUInt32(txtD.Text));
82
83 }
84 }
85}
86 其中MessageBox.Show(...)执行时就不动了,内部机理也不名所以,若是能够SHOW的话,那岂不是不用ACTIVEX了吗,一己之见而已了。根据理论是不行的,在。NET3.0(WinFX)可以将Win&Web集成到一起,那时将不分什么了,太恐怖了。