常见原因 - .NET下的访问冲突错误

use*_*572 7 .net vb.net access-violation

我正在寻找.NET下的访问冲突错误的常见原因.

我到目前为止检查过的事情 -

  • 对实现IDisposable的所有对象调用Dispose
  • 检查COM对象调用中的有效参数
  • 显式删除所有手动添加的事件处理程序
  • 请勿明确调用GC.Collect/GC.WaitForPendingFinalizers
  • 处理本机对象时添加和删除内存压力(位图等).(已添加)
  • 验证所有PInvoke调用的有效参数类型
  • 确保正确使用IntPtr,SafeHandle和HandleRef
  • 线程(线程安全,重入函数),正确使用等待句柄.(已添加)
  • 确保应用程序和DLL都针对相同的平台(x86或x64)(应用程序和dll应该与COM对象的目标平台.)(已添加)

还有其他建议吗?

编辑 - 将崩溃转储分析移至不同的问题.

Aut*_*act 1

您是在运行时生成 IL 还是使用执行此操作的组件?使用不安全的 C# 代码进行指针操作?