好久没有更新了,主要仍是由于本身懒吧,但愿从今天开始坚持至少一周写一篇文章。c++
调用函数库是正常的,调用完成后,在使用EF进行数据更新时,将发生以下异常信息,并且几乎必现。c#
行库遇到了错误。此错误的地址为 0x79e8eda2,在线程 0xaa4 上。错误代码为 0xc0000005。此错误多是 CLR 中的 bug,或者是用户代码的不安所有分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。安全
有时可能会报“读或者写受访问的内存”。而若是在调用先后设置断点,将不会参数异常。函数
c++ 函数定义ui
BOOL WINAPI DataEncryption(const BYTE* pszData, \
const BYTE* pszDispersionFactor,\
BYTE** pcResult);spa
c#调用定义线程
bool DataEncryption(string encryptData,string dispFactor,ref string result);内存
若是使用以上定义,调用将发生上面错误,正确的定义应该是string
bool DataEncryption(string encryptData,string dispFactor,ref StringBuilder result);io
将string->StringBuilder便可解决这个问题。
这个问题我的以为应该是是因为string在.NET中的特殊实现引发的。若是谁知道真正的缘由,请帮忙解释一些缘由