自己开始采用的是第一种dll的生成方式,然后出现"未找到入口"的错误,修改为采用。.def的方法,解决了这个错误,但是出现了新的问题:“函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。”自己感觉应该是可以找到函数的入口,但是形参或者类型出现了不匹配的问题。
后来搜集了网上的资料发现也不是参数匹配的问题,而是DLL调用的过程中 CallingConvention参数设置的问题,详细的参见:
调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。