是用来计算MAC码的
C++中函数定义如下:
   ZDLL_API void __stdcall CountMac(unsigned char *key,unsigned char *inittext,unsigned char *Source,unsigned int le ,unsigned char *destin);
其中参数:
   key : 密钥 16字节
   inittext : 初始值  16字节
   Source : 需加密的数据
   le : 加密数据的长度
   destin : 加密后的结果 4字节我在C#中的调用如下:
   [DllImport("ZDLL.dll")]
        private static extern void CountMac(string key, string inittext, string source, uint len, StringBuilder destin);但是算出来的结果就是不对  请高手指教一下  C#中调用的时候方法怎么定义  主要是参数类型

解决方案 »

  1.   

    自己已解决  、如下:[DllImport("ZDLL.dll")]
            private static extern void CountMac([MarshalAs(UnmanagedType.LPArray)] byte[] key, [MarshalAs(UnmanagedType.LPArray)] byte[] inittext, [MarshalAs(UnmanagedType.LPArray)] byte[] source, uint le, [MarshalAs(UnmanagedType.LPArray)] byte[] destin);