用C# 写的DLL 调用问题 请高人指点
我自己编写的DLL test.dll代码如下
namespace test
{
public static int Login(string username, string password)
{
//业务代码就不贴出来了
}
public static int sendMessage(string username, string password, string message, string mobile)
{
//业务代码就不贴出来了
}
}
其中有 Login 和 sendMessage 方法,我自己用C# 开发软件是 Microsoft Visual Studio 2005 直接点引用-添加引用 调用它是没有任何问题。
但是如果这样 调用的话
[DllImport("test.dll", EntryPoint = "Login")]
public static extern int Login(string username, string password);
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Login(_name,_pass).ToString());
}
程序就会出现错误,错误提示:
无法在 DLL"test.dll"中找到名为"Login"的入口点
请高手指点一下,我应该怎么修改一下,或者是说 C#根本不能写这样的DLL ? --------------------编程问答-------------------- 没看过这种写法 --------------------编程问答-------------------- tete 你好, 你的意思是我这个DLL 的 写法错了吗? 我是第一次写这个东西,而且在网上也找不到什么列子,请你指教一下! --------------------编程问答-------------------- 我知道 如果是VC的。DLL被C
#调用的哈 就是你的。def文件没写好 C#可能也是接口没弄好 也可能有DEF文件吧 试下 --------------------编程问答-------------------- 记号学习 --------------------编程问答-------------------- .NET技术交流群...化学习和娱乐为一体的高手群..!.
如果你是性格活跃,开朗,幽默当然也爱学习的“同志”..那么请加群..72601863..! --------------------编程问答-------------------- 我也遇到过这种错误提示,我的是传参数的类型不对 --------------------编程问答--------------------
DLL 是用C# 写的,我自己测试的时候,用“引用”这种方式,调用没有问题! 但是如果要用其他语言调用的话,应该就是要用类似这种方式调用吧
[DllImport("test.dll", EntryPoint = "Login")]
public static extern int Login(string username, string password);
然后程序就会出现错误,错误提示:
无法在 DLL"test.dll"中找到名为"Login"的入口点
我该怎么样把这个入口点写出来呢?
--------------------编程问答--------------------
我觉得不会是参数问题! 参数一开始就已经指定的了,如果参数不匹配,应该编译不过 --------------------编程问答-------------------- 你的test.dll并不是native code编写的dll,不需要dllimport
--------------------编程问答-------------------- 如果你用DllImport()调用dll文件时应该把dll文件放在工程bin目录下的debug中 --------------------编程问答--------------------
已经能引用的,只是调用里面的方法 就会出现找不到入口点的错误,并不是缺少文件 --------------------编程问答-------------------- 关注.... --------------------编程问答-------------------- DllImportAttribute 类
指示该属性化方法由非托管动态链接库 (DLL) 作为静态入口点公开。
看看这句话是什么意思 --------------------编程问答-------------------- 关注 --------------------编程问答-------------------- 托管代码写的是伪DLL
不用那么掉吧,那样是掉NATIVE --------------------编程问答-------------------- 楼主补一下基础知识。
那种方式是调用VC等编写的非托管动态库的。
C#写的DLL库不能那样调用,只能引用或者用反射动态装载。 --------------------编程问答-------------------- 指示该属性化方法由非托管动态链接库 --------------------编程问答-------------------- 如果是C++些的DLL需要那样写, C#写的直接引用或是用反射加载 --------------------编程问答-------------------- 老大,你自己的c#写的那个dll,你没事干用DllImport干嘛呢
非托管代码才要这么调
你想想你分三层时,DAL,BLL你是咋调的 --------------------编程问答-------------------- 为什么用extern呢?
.net程序集只要引用了,
using 命名空间;
就可以调用了。 --------------------编程问答-------------------- 关注
补充:.NET技术 , C#