我疯了,原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配
麦壳饼 2010-11-03 07:39:26 我疯了
对 PInvoke 函数“PMS.Common!PMS.Common.calc::CalcL”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
奇数次调用这个 出错,
偶数次正确。 奶奶的
[DllImport("calc.dll", CharSet = CharSet.Auto)]
public static extern int CalcL([MarshalAs(UnmanagedType.AnsiBStr)]string exps);
[DllImport("calc.dll", CharSet = CharSet.Auto)]
public static extern float CalcF([MarshalAs(UnmanagedType.AnsiBStr )]string exps);
[DllImport("calc.dll", CharSet = CharSet.Auto)]
public static extern int GetError();