c#无法找到dll的入口点

sunboy_yf 2011-06-09 11:00:37
public class Functions
{

.............
[DllImport("GYINTERFACE.dll",EntryPoint="INIT")]
public static extern int INIT();
..............

}

调用的写法如下:


try
{
int returnValue = Functions.INIT();
if (returnValue != 0)
{
this.errText = "初始化接口失败!";

return -1;
}
}
catch (Exception ex) --这抛出异常提示 无法找到dll的入口点
{
this.errText = ex.Message;

isInit = false;

return -1;
}



需要调用的GYINTERFACE.dll是用pb的com+弄的。

是什么原因那。谢谢各位了啊。


...全文
736 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunboy_yf 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 isjoe 的回复:]
入口叫:INIT吗?
c#调用的DLL有 规则的,不是随便一个DLL都可以调用的。。。。看看pb定义的方式
[/Quote]
GYINTERFACE.dll中的文档有INIT的方法声明。
xuexiaodong2009 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 isjoe 的回复:]

入口叫:INIT吗?
c#调用的DLL有 规则的,不是随便一个DLL都可以调用的。。。。看看pb定义的方式
[/Quote]同意
isjoe 2011-06-09
  • 打赏
  • 举报
回复
入口叫:INIT吗?
c#调用的DLL有 规则的,不是随便一个DLL都可以调用的。。。。看看pb定义的方式
rrtt_2323 2011-06-09
  • 打赏
  • 举报
回复
你的dll是生成好了的吗?是不是一个单独的dll文件。。。我看你现在的方法是一般调用windowsAPI的方法。。。你要是一个DLL的话,还是在项目上右键引用吧。。。或者你非要这么调的话,我建议你把这个dll,放到system32文件夹底下试试(就是在windows文件夹里面的那个系统的),因为windowsAPI也都在那里面了,[DllImport("GYINTERFACE.dll",EntryPoint="INIT")]看这个也没写路径,所以估计它直接去api所在的文件夹里面去找了,所以你可以试试看,当然如果是单独的一个dll的话,我还是建议在项目上右键引用这么去调
xuexiaodong2009 2011-06-09
  • 打赏
  • 举报
回复
怎么声明的
使用了define的方式?看头文件?define的方式不是C#中的名称,应该使用定义方法的那个名称

110,532

社区成员

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

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

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