1、我需要引用使用ICUSB.dll里面的一个方法,因此先引用dll,但出现问题。
2、于是我用dllImport引用,结果仍然出现错误
如图所示
不用添加引用,放在程序目录就行了
首先确定你要引用的dll是c库还是C#写的库,C#写的库你直接在项目里添加引用的就行了。C库则你首先要明确其导出了那些函数,函数的调用约定是什么(stdcall还是cdcall,这影响堆栈平衡),然后用C#的平台调用(也就是dllimport)将C函数声明为托管函数,此时要注意C类型与C#的转换,托管内存与非托管内存的互转,字符串编码类型,大部分工作可以利用Marshal类提供的方法.
谢谢你这么耐心的解答!按照你说的先确定dll是哪个语言写的库,因为这个dll是下载的,我想问有什么方法我可以确定呢?我用的是C#平台编写的。或者你有些什么资料可以给我参考一下?再或者我需要怎么百度呀?
@大丽丽Yeah!: 你先用C#的反编译工具Reflector查看,若打不开则不是C#的库
@二三素心人: 我按照你说的做了,导出的文件中有一段这样的代码:
<CSHARP ProjectType="Local" ProductVersion="7.10.3077" SchemaVersion="2.0" ProjectGuid="0ED0A36D-FF90-4A7A-A293-A8613525D2FD">。。。</CSHARP>就说明,这个dll是C#库了,对不对?那为什么添加引用还会报错呢?
@二三素心人: 咦?麻烦可以给提供个解决办法吗?