这段代码是在网上找来的,但别人应该没有出现跟我一样的错误,帮忙看看为什么出这个错吧。
[DllImport("packet.dll", EntryPoint = "PacketGetAdapterNames", CharSet = CharSet.Ansi)]
        public static extern bool PacketGetAdapterNames([MarshalAs(UnmanagedType.LPStr)]string sStr, ref int BufferSize);        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            bool b = false;
            int length = 40;
            string an = new string('0', length);
            b = PacketGetAdapterNames(an, ref length);
            //NetworkInterface[] ni = NetworkInterface.GetAllNetworkInterfaces();
            label1.Text = an;
        }错误:对 PInvoke 函数“Winpacp!Winpacp.Form1::PacketGetAdapterNames”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。