c++函数:
参数:lpUid - [out]返回UID数据的缓冲区,不小于10字节
lpDataLen - [in,out]返回UID的实际长度,
注意需要传入时要赋初始值(lpUid的大小)
返回:0 - 成功;其他 - 失败
extern “C” int WINAPI Mx_GetNonIcUID(BYTE* pUidBuf, WORD* pwUidBufLen);
C#调用
[DllImport("******.dll", CallingConvention = CallingConvention.Winapi, EntryPoint = "Mx_ReadModuleInfo")]
public extern static int Mx_ReadModuleInfo(IntPtr lpData, ref IntPtr lpDataLen);
byte[] bytes = new byte[256];
IntPtr ss = Marshal.StringToHGlobalAnsi(System.Text.Encoding.UTF8.GetString(bytes));
IntPtr lpData = Marshal.AllocHGlobal(ss);
IntPtr lpdatalen = Marshal.AllocHGlobal(ss);
int ret = Mx_ReadModuleInfo(lpData, ref lpdatalen);
Console.WriteLine(ret+"");
byte[] ys = new byte[256];
Marshal.Copy(lpData, ys, 0, 256);
string str = System.Text.Encoding.UTF8.GetString(ys);
Console.WriteLine(str);