gpt4 book ai didi

c# - 输出窗口中消息的 Visual Studio 源

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:47:04 25 4
gpt4 key购买 nike

假设我的输出窗口中有一条消息(显示 Debug 的输出)

Exception thrown: 'System.InvalidOperationException' in mscorlib.dll

我的应用程序没有抛出异常,只是显示该消息并继续。当我调用导入的 DLL 中的方法时发生异常,该 DLL 是一个 C++ 模块(我的应用程序是 C#)。尽管出现此消息,该方法似乎仍能正常运行。

我的猜测是该模块正在处理异常然后显示该消息,但我想确定情况确实如此,并且与我如何导入它或编码数据(或自定义编码器)无关).

(我的代码:

[DllImport("theExternalModule.dll", EntryPoint = "ReadData", SetLastError = true)]
[return: MarshalAs(UnmanagedType.U4)]
private static extern UInt32 ReadData([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(JaggedArrayMarshaler))] Int16[][] data,
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(JaggedArrayMarshaler))] Int16[][] dataOrig,
[MarshalAs(UnmanagedType.U2)] Int16 buffsize,
ref int smpNum);

resultCode = ReadData(_buffer, _origBuffer, bufferSize, ref sampleNumber);

(当我在调试器中单步执行这一行时,会显示消息)

我的问题是,有没有办法让输出窗口告诉我是什么模块或方法导致显示该消息?

最佳答案

当您在创建枚举器之后更改集合时,通常会发生此问题。您的原始问题没有足够的代码来断言,但您可以阅读有关此问题的信息 herehere .

这是一个会抛出该异常的示例(摘自其中一篇文章):

List<Book> books = new List<Book>();
books.Add(new Book("The Stand", "Stephen King"));
books.Add(new Book("Moby Dick", "Herman Melville"));
books.Add(new Book("Fahrenheit 451", "Ray Bradbury"));
books.Add(new Book("A Game of Thrones", "George R.R. Martin"));
books.Add(new Book("The Name of the Wind", "Patrick Rothfuss"));

Book newBook = new Book("Robinson Crusoe", "Daniel Defoe");
foreach (var book in books)
{
if (!books.Contains(newBook))
{
books.Add(newBook); // Throws a InvalidOperationException in mscorlib.dll
}
}

您不妨看看 the InvalidOperation class on MSDN进一步的原因。

关于c# - 输出窗口中消息的 Visual Studio 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035834/

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