1 c#写的DLL
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Text;
6
7 namespace SDKDAL
8 {
9 public static class demo
10 {
11 public static string GetText()
12 {
13 return "测试";
14 }
15 }
16 }
17
18
19 下面是在asp.net调用(c#语言)
20 using System;
21 using System.Configuration;
22 using System.Data;
23 using System.Linq;
24 using System.Web;
25 using System.Web.Security;
26 using System.Web.UI;
27 using System.Web.UI.HtmlControls;
28 using System.Web.UI.WebControls;
29 using System.Web.UI.WebControls.WebParts;
30 using System.Xml.Linq;
31 using System.Runtime.InteropServices;
32
33 public partial class _Default : System.Web.UI.Page
34 {
35 protected void Page_Load(object sender, EventArgs e)
36 {
37 if(!IsPostBack)
38 {
39 string str=GetText(); //调用自己写的就报错,运行时报无法在 DLL“SDKDAL.dll”中找到名为“GetText”的入口点。
40
41
42 //调用系统的可以
43 string myString="请选择!";
44 MessageBoxTEST(0, myString, "是否取消呢?", 3);
45
46 }
47
48 }
49
50 [DllImport("User32.dll", EntryPoint = "MessageBox")]
51 public static extern int MessageBoxTEST(int h, string m, string c, int type);
52
53
54 [DllImport("SDKDAL.dll")]
55 public static extern string GetText();
56 }
57
58
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Text;
6
7 namespace SDKDAL
8 {
9 public static class GetText
10 {
11 public static string GetText()
12 {
13 return "测试";
14 }
15 }
16 }
这样试一下
引用即可
不能引用编译时绑定,则可运行时加载程序集,反射调用
DllImport 引入的是导出函数
为什么要这么用呢,直接 引用Dll。
然后在使用的页面using命名空间,直接GetText就可以用了,还费这劲干什么啊。
.net 编写的 dll 在 .net 中调用不能使用 DllImport 方式,
你只能直接引用 dll.或者用 Assembly.Load 外加 Reflecte.
间接引用用反射。
直接添加dll的引用,然后引用命名空间不就可以了。为什么要用DllImport引入呢