int ZLGKey( const unsigned char* iSeedArray, // seed数组
unsigned short iSeedArraySize, // seed数组大小
unsigned int iSecurityLevel, // 安全级别
const char* iVariant, // 其他数据, 可设置为空
unsigned char* iKeyArray, // key数组, 空间由用户构造
unsigned short* iKeyArraySize // key数组大小, 函数返回时为key数组实际大小)
)
后两个参数为需要获取的值
根据实际使用测试,在C#中构建DLL文件调用函数如下:
[DllImport("UdsSeedToKey.dll", EntryPoint = "ZLGKey", CallingConvention = CallingConvention.Cdecl)]
public static extern int ZLGKey(IntPtr data, ushort data_length, ushort iSecurityLevel, IntPtr Variant,byte[] rdata, ref ushort rl);
[DllImport("UdsSeedToKey.dll", EntryPoint = "ZLGKey", CallingConvention = CallingConvention.Cdecl)]
public static extern int ZLGKey(byte[] data, ushort data_length, ushort iSecurityLevel, IntPtr Variant, byte[] rdata, ref ushort rl);
两种构建都可以成功运行。char*类型根据实际情况,也可以使用string或者stringbuilder类型