好久沒有更新了,主要仍是由於本身懶吧,但願從今天開始堅持至少一週寫一篇文章。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中的特殊實現引發的。若是誰知道真正的緣由,請幫忙解釋一些緣由