首页 新闻 会员 周边

C# 引用Dll的问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-09-27 11:01

1、我需要引用使用ICUSB.dll里面的一个方法,因此先引用dll,但出现问题。

 

2、于是我用dllImport引用,结果仍然出现错误

 

如图所示

 

 

大丽丽Yeah!的主页 大丽丽Yeah! | 初学一级 | 园豆:145
提问于:2016-02-22 15:53
< >
分享
所有回答(2)
0

不用添加引用,放在程序目录就行了

喵喵喵猫 | 园豆:1742 (小虾三级) | 2016-02-22 17:20
0

首先确定你要引用的dll是c库还是C#写的库,C#写的库你直接在项目里添加引用的就行了。C库则你首先要明确其导出了那些函数,函数的调用约定是什么(stdcall还是cdcall,这影响堆栈平衡),然后用C#的平台调用(也就是dllimport)将C函数声明为托管函数,此时要注意C类型与C#的转换,托管内存与非托管内存的互转,字符串编码类型,大部分工作可以利用Marshal类提供的方法.

二三素心人 | 园豆:202 (菜鸟二级) | 2016-02-23 11:41

谢谢你这么耐心的解答!按照你说的先确定dll是哪个语言写的库,因为这个dll是下载的,我想问有什么方法我可以确定呢?我用的是C#平台编写的。或者你有些什么资料可以给我参考一下?再或者我需要怎么百度呀?

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2016-02-23 13:21

@大丽丽Yeah!: 你先用C#的反编译工具Reflector查看,若打不开则不是C#的库

支持(0) 反对(0) 二三素心人 | 园豆:202 (菜鸟二级) | 2016-02-23 13:54

@二三素心人: 我按照你说的做了,导出的文件中有一段这样的代码:

  <CSHARP ProjectType="Local" ProductVersion="7.10.3077" SchemaVersion="2.0" ProjectGuid="0ED0A36D-FF90-4A7A-A293-A8613525D2FD">。。。</CSHARP>就说明,这个dll是C#库了,对不对?那为什么添加引用还会报错呢?

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2016-02-23 14:30

@二三素心人: 咦?麻烦可以给提供个解决办法吗?

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2016-02-29 08:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册