C++:int WINAPI CFISO15693_Inventory(WORD wDevID, BYTE *pData, BYTE *pLength);
C#:public static extern int CFISO15693_Inventory(ushort wDevID, ref byte[] pData, ref byte pLength);
我看出的问题是传参的问题。
我做的时候字符串类型的参数是用C# 中的string类型的,所以:
我建议楼主参数:ref byte[] pData, ref byte pLength,改为:string pData,string pLength;
传参时直接传c#中 string类型的即可。
C#:public static extern int CFISO15693_Inventory(ushort wDevID, ref byte[] pData, ref byte pLength);
我看出的问题是传参的问题。
我做的时候字符串类型的参数是用C# 中的string类型的,所以:
我建议楼主参数:ref byte[] pData, ref byte pLength,改为:string pData,string pLength;
传参时直接传c#中 string类型的即可。
[DllImport("CFDll.dll", EntryPoint = "CFISO15693_Inventory")]
public static extern int CFISO15693_Inventory(ushort wDevID, intPtr pData, ref .....
int cfIso15693_inventory;
byte[] dsfidUid = new byte[1024];
ushort x = 0;
intPtr bytepointer = Marshal.UnsafeAddrOfPinnedArrayElement ( dsfidUid,0);
cfIso15693_inventory = CFISO15693_Inventory(x, ref dsfidUid, ref length);
http://www.red-gate.com/products/pinvoke.net/index.htm
整天都见有人问这样的问题,连一些基本数据类型都搞不明白,真是无语。
,多自己试一下改变