我有一个基本的WinForms应用程序。我正在调用外部API,这会产生以下异常:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
A first chance exception of type 'System.AccessViolationException' occurred in UavController.exe
电话看起来像这样:
outputBroker.SelectedObjectPaths.AddWithID(((AgAircraft)aircraft).Path, ((AgAircraft)aircraft).InstanceName);
我找不到任何问题的迹象。
答案 0 :(得分:2)
问题是您的API生成的问题。您是通过调用将错误数据传递给API,或者您的API本身存在问题。如果您有权访问API代码,可以使用以下Microsoft链接:
http://msdn.microsoft.com/en-us/library/ms164911(v=vs.80).aspx
否则,我认为您可能需要与您的API提供商合作,找出问题所在以及解决方法。
答案 1 :(得分:0)
第一次机会异常并不总是一个错误。第一次机会异常是您正在调试的代码第一次抛出异常。如果您的代码处理异常,那么所有这些操作都会通知您发生了异常。
例如,我可能有代码尝试查找具有特定名称的文件,如果找到,则执行某些操作。如果文件名不存在,则抛出异常,我处理并执行其他操作。因此,虽然发生了异常,但它是预期的行为并由代码处理。
如果您有二次机会异常通知,这意味着您的代码实际上并不处理抛出的异常。那时,你想看看发生了什么。您是否只是为了获取更高级别的代码而再次抛出异常,或者您是否完全忽略它。
答案 2 :(得分:-1)
将它放在构造函数中作为第一行... 关闭修复它:)
InitializeComponent();