与非托管代码中的方法等效的C#

时间:2018-10-17 08:55:11

标签: c# com

我需要在dll中调用方法

DWORD PLIC_API RFPerso_GetMifare1KData(BYTE*  pbUid,
                                       DWORD  dwUidLength,
                   RFPERSO_GEN_MIF_STD_DATA*  pRFMifData, //Its a structure
                                      DWORD*  pdwLicCount);

C#中的等效含义是什么。我在c#端使用以下方法,但是出现参数不匹配错误。

[DllImport("NercoPic.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern uint RFPerso_GetMifare1KData(  byte[] pbUid,
                                                   uint dwUidLength,
                              ref RFPERSO_GEN_MIF_STD_DATA pRFMifData,
                                                 ref  uint pdwLicCount);

我在这里做错了什么?

编辑呼叫代码

string uid = "DEDE";

byte[] uidArray= Encoding.ASCII.GetBytes(uid);
 AA.RFPERSO_GEN_MIF_STD_DATA data = new AA.RFPERSO_GEN_MIF_STD_DATA (
                      0, 0, new AA.RFPERSO_GEN_MIF_BLOCK[4]
                      {
                          new AA.RFPERSO_GEN_MIF_BLOCK(default(byte),default(byte),default(byte),new byte[16]),
                          new AA.RFPERSO_GEN_MIF_BLOCK(default(byte),default(byte),default(byte),new byte[16]),
                          new AA.RFPERSO_GEN_MIF_BLOCK(default(byte),default(byte),default(byte),new byte[16]),
                          new AA.RFPERSO_GEN_MIF_BLOCK(default(byte),default(byte),default(byte),new byte[16]) }
                     )  ;

uint licCount=0;
i = AA.RFPerso_GetMifare1KData( uidArray, 4, ref data,ref licCount);

0 个答案:

没有答案