C# 调用第三方DLL缓冲区溢出导致的异常

这个倒是少见的错误,纪录一下大佬。

先上异常

错误一:尝试读取或写入受保护的内存

 错误二:未将对象引用设置到对象的实例

 

错误三:  托管调试助手“FatalExecutionEngineError”(未能截图,网上找的,除了地址都是一样)

在此期间因为排查各种错误,代码删减所以报错才会异常不一样。

上代码:

方法:GetSHA256HashFromString

中间找错就不说了,代码瞎删,环境测试,实例更换

最后发现调用第三方DLL读字节是512,结果给的字节是64字节。

知道了哪里导致的错误,但是想不明白为什么调用第三方DLL给出的参数是错误的,但是不报错,运行到.NET自带的函数就报错

C# 群内一大佬解惑:

 对,还有N多页就不截图出来了。

有些错误还是预料不到的,毕竟做C#没学过底层调用C语言的DLL报错时还是会找不着北,总的来说遇到错误还是要静下心来慢慢找问题。

 另外安利一下C# 群号码:199938225(每个学习群扯淡的多,你懂得,这不正经的群名就是证据...)

 

原文地址:https://www.cnblogs.com/zlyxm/p/8193823.html