我有一个.NET可执行程序集,它通过P / invoke引用一个非托管C ++ dll。 在强名称签名.net程序集后,我在访问非托管dll时会在某些随机点上发生Access违规。然后我重新编译程序集而不签名它仍然得到相同的错误。通过DebugDiag运行它我从崩溃报告中得到了以下内容
second_Chance_Exception_C0000005.dmp the assembly instruction at 0x00963c37 which does not correspond to any known native module in the process has caused an access violation exception (0xC0000005) when trying to read from memory location 0x0000000c on thread 10
Thread 10 - Entry point clr!StrongNameSignatureVerification+16491
Create time 4/1/2013 12:10:32 ìì
Time spent in user mode 0 Days 0:0:2.515
Time spent in kernel mode 0 Days 0:0:0.125
73 0x79206dc9 0x00000000 clr!StrongNameErrorInfo+966b 0x00000000
74 0x792084c5 0x0477ffb4 clr!StrongNameErrorInfo+ad67 clr!StrongNameErrorInfo+941c
75 0x792f76e0 0x0477ffec clr!StrongNameSignatureVerification+164d9 0x00000000
这让我觉得它仍然在查询验证。我不明白这是怎么发生的
另一方面,强大的命名程序集可以反映无法控制的dll吗?