运行说,找不到Mydllfunction的入口,是怎么会事?

Lezen 2010-03-20 12:58:49
using System.Runtime.InteropServices

[Dllimport (@"dllfile.dll")]

...
public static extern string Mydllfunction(string val1);

class myclass
{
public void xx_button(object sender,EventArg e)
{
...

string s=Mydllfunction("abc");
...
}
...
}

运行说,找不到Mydllfunction的入口,是怎么会事?

dllfile是c#创建的类库,编译后生成的,为什么调用会找不到dll中函数的入口?
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
criedshy 2010-03-20
  • 打赏
  • 举报
回复
[Dllimport (@"dllfile.dll")]
这种方式是调用非托管的dll才用的,比如api,C/C++写的类库

C#定的,你直接添加引用就可以了

用的时候,用using 你的命名空间就可以使用了
aierda 2010-03-20
  • 打赏
  • 举报
回复
楼主直接引用DLL试下,一般重写api函数才需要这样的
sito_hongta 2010-03-20
  • 打赏
  • 举报
回复
樓上幾位都說了~~~~
KnowKjava 2010-03-20
  • 打赏
  • 举报
回复
错误信息是什么
cuike519 2010-03-20
  • 打赏
  • 举报
回复
DllImport是调用标准DLL时使用的方法,这种方法可以调用指定DLL的导出函数。

如果是.NET的直接引用或者LoadAssembly都可以。
xingyuebuyu 2010-03-20
  • 打赏
  • 举报
回复
dllfile.dll既然是C#编译生成的,你直接"添加引用",选中dllfile.dll加进来就可以了.像平常一样正常使用就可以了.

在 .net 框架程序中通过DllImport使用 Win32 API, C#编译生成的并不是Win32 API.
参考下面的了解DllImport的使用

1
http://topic.csdn.net/t/20030325/12/1573471.html
2
http://www.cnblogs.com/xumingming/archive/2008/10/10/1308248.html
3
http://blog.csdn.net/abaowu/archive/2004/11/24/193626.aspx
4
http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx
云海玉弓缘 2010-03-20
  • 打赏
  • 举报
回复
C#写出来的dll本身就是托管的DLL,怎么还Dllimport嘛...

在新的工程里添加一个对这个dll的引用就可以使用里面的类了(前提是public)

Dllimport是为了使用非托管dll用的.比如说你要调用c/c++写的dll

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧