gpt4 book ai didi

c# - .NET 4.0 - AccessViolationException 和 WndProc

转载 作者:可可西里 更新时间:2023-11-01 12:47:26 26 4
gpt4 key购买 nike

我有这段代码:

internal class MTool : NativeWindow
{
private const int WM_LBUTTONDOWN = 0x0201;
public event TipDeactivateEventHandler Deactivate;

protected override void WndProc(ref System.Windows.Forms.Message m)
{
if( m.Msg == WM_LBUTTONDOWN )
{
if( this.Deactivate != null)
{
this.Deactivate();
}
}

base.WndProc(ref m);
}
}

当我运行我的程序时,我在 base.WndProc(ref m); 行收到 AccessViolationException 错误,我不知道为什么。

显然这是从 .NET 2.0 移植到 4.0 的,我的理论是现在可能使用替代方法来代替覆盖 WndProc。是这种情况吗?如果不是,为什么我会收到此异常?

最佳答案

我通过在方法上方添加此属性来修复它:

[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]

然后用 try/catch 围绕异常发生的行。我找到了这个信息here .

关于c# - .NET 4.0 - AccessViolationException 和 WndProc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12010296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com