P/Invoke能够在asp.net中使用哦,是的,今天尝试一下。 1
2
3使用系统;
4使用System.Collections;
5使用System.ComponentModel;
6使用系统数据;
7使用System.Drawing;
8使用System.Web;
9使用System.Web.SessionState;
10使用System.Web.UI;
11使用System.Web.UI.WebControls;
12使用System.Web.UI.HtmlControls;
13
14使用System.Runtime.InteropServices;
15使用System.Windows.Forms;
16
17命名空间Test_MyService
18{
19 /**//// <摘要>
20 /// WebForm1 的摘要说明。
21 /// </摘要>
22 公共类WebForm1:System.Web.UI.Page
23{
24 受保护的System.Web.UI.WebControls.TextBox TextBox1;
25 受保护的System.Web.UI.WebControls.Label Label1;
26 受保护的System.Web.UI.WebControls.Button Button1;
27 受保护的System.Web.UI.WebControls.TextBox TextBox2;
28 受保护的System.Web.UI.WebControls.TextBox txtQ;
29 保护 System.Web.UI.WebControls.TextBox txtD;
30
31 localhost.ServiceTest myservice = new Test_MyService.localhost.ServiceTest();
32
33 private void Page_Load(对象发送者,System.EventArgs e)
34{
35 // 在此处放置用户代码以初始化页面
36
37}
38
39 [DllImport("user32.dll", CharSet=CharSet.Ansi)]
40 公共静态 extern int MessageBox(int h, 字符串 m,
41 字符串c,int类型);
42
43 [DllImport("user32.dll", CharSet=CharSet.Ansi)]
44 public static extern Boolean MessageBeep(UInt32 beepType);
45
46 [DllImport("Kernel32.dll", SetLastError=true)]
47 静态外部布尔蜂鸣声(UInt32 频率,UInt32 持续时间);
48
49
50 网页表单设计器生成的代码#region 网页表单设计器生成的代码
51 重写 protected void OnInit(EventArgs e)
52{
53 //
54 // CODEGEN:该调用是 ASP.NET Web 单张设计器所必需的。
55 //
56 初始化组件();
57 .OnInit(e);
58}
59
60 /**//// <摘要>
61 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
62 /// 该方法的内容。
63 /// </摘要>
64 私有无效InitializeComponent()
65{
66 this.Button1.Click += new System.EventHandler(this.Button1_Click);
67 this.Load += new System.EventHandler(this.Page_Load);
68
69}
第70章
71
72 private void Button1_Click(对象发送者,System.EventArgs e)
73{
74 this.TextBox2.Text = myservice.Who(this.TextBox1.Text);
75
76 // 字符串 pText = "Hello World!";
77 // 字符串 pCaption = "PInvoke 测试";
78 // 消息框(0, pText, pCaption, 0);
79
80 //消息提示音(0x00000010);
81 嘟嘟(Convert.ToUInt32(txtQ.Text),Convert.ToUInt32(txtD.Text));
82
83}
84}
85}
86其中MessageBox.Show(...)执行时就不动了,内部电流也不名所以,可以能够SHOW,那岂不是不用ACTIVEX了吗,一己之见了。根据理论的话是不行的,在.NET3.0(WinFX)可以将Win&Web集成到一起,这时将不分什么了,太恐怖了。