易截截图软件、单文件、免安装、纯绿色、仅160KB

C#调用C的动态链接库

最近在做一个项目,有用到明华的读卡器,要用明华读卡器来读卡~!
先初始化设备
调用rf_init 返回值是0,表示成功的!
之后寻卡
rf_Card()一直都是失败,返回值不是0

我调用过程是这样的
动态链接库中的函数原型是:
int rf_card(int icdev,unsigned char _Mode,unsigned long *_Snr);
参 数:icdev:通讯设备标识符
      _Mode:寻卡模式mode_card
      _Snr:返回的卡序列号


我用C#调用改写成下面形式
[DllImport("mwrf32.dll")]
public static extern int rf_card(int icdev, byte _Mode, ref uint _Snr);

但调用之后返回值一直不是0,说明寻卡不成功,请问我这个改写有什么不对的吗?是不是哪里类型搞错了!!!
如果参数是传进的话,用string是可以的,如果是传出的话,用StringBuilder。   
  至于const  int*,用"ref  int"来替换。


int===> IntPtr 
是不是类型错误了??

像这样的方式你最好用非安全代码的方式,我以前做过,的确会出现这种问题

[DllImport("mwrf32.dll")]
public static extern int rf_card(int icdev, byte _Mode, out uint _Snr);
试试.


int===> IntPtr
我第一个参数用IntPtr试过了,也不行~!!
[DllImport("mwrf32.dll")]
public static extern int rf_card(IntPrt icdev, byte _Mode, ref uint _Snr);

引用
[DllImport("mwrf32.dll")]


相关问答:

急求ASP。NETC#购物车代码

最近在做个网上商城,购物车模块,没有做过,麻烦各位帮忙说下大致说下思路,能发一份源码更好。小弟先谢过各位了;
QQ:413763818;
eamil:swebook@126.com
网上一大堆!

www.51aspx.com

去下 ......

求c#操作sqlserver数据库问题

在数据库中有张表,有id,name两列,id 是主键,没有设置自增属性,在程序中取出这张表放入datatable,在这个datatable中插入一条记录,当更新数据库时提示id列不能为空,请问该怎么解决?
给它一个值!!主键不能为空 ......

linux下C语言开发oracle的问题。

两个文件1.PC,1.inc
1.PC有操作oracle数据库的 ,1.inc也有操作oracle数据库 
在其他数据中如informix 中$include 1.inc就可以使用了
在ORACLE数据库重 $include 1.inc不可用 EXEC SQL include 1.inc也不可 ......

C的学习途径 - C/C++ / 新手乐园

我只学过清华蓝封面的C语言基础,想更深入的学习,该看什么书好?
C Primer Plus
C程序设计语言(第2版新版)
C语言程序设计_现代方法
C语言参考手册第五版
C语言大全
C和指针
C陷阱与缺陷
C专家编程

......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号