- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用自定义调试引擎,当我将我的结构编码到 IntPtr
时,Visual Studio 崩溃(被调试的不是调试器)。
我的结构只不过是:
public struct DocumentContext : IDebugDocumentContext2, IDebugCodeContext2
{
private string _fileName;
//.....Implementation of interfaces
}
我的编码代码如下所示:
var documentContext = new DocumentContext(_node.FileName);
var size = Marshal.SizeOf(documentContext);
IntPtr ptrDocContext = Marshal.AllocHGlobal(size);
//This is what is crashing
//I don't have a chance to catch anything, it just craps out
//Event log says faulting dll is nt.dll
Marshal.StructureToPtr(documentContext, ptrDocContext, true);
我错过了什么吗?
最佳答案
如果以前从未分配过非托管结构,则不应使用 deleteOld。 deleteOld 仅在您覆盖以前的结构时适用(例如,为了取消分配字符串引用。)这应该有效:
Marshal.StructureToPtr(documentContext, ptrDocContext, false);
关于c# - Marshal.StructureToPtr 使 Visual Studio 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339979/
我在使用这段代码时遇到了一些问题: //Creating a new ImageElement Struct ImageElement oElement = new UM0516.ImageEleme
有没有一种方法可以将结构(可能存储在 TypedReference 中)编码到非托管内存而无需实际装箱?结构的类型在运行时未知,因此我不能使用 StructureToPtr (.NET 4.5.1)
我正在开发一个应用程序,它通过 C++/CLR 包装器涉及 native C++ 到 C# 的互操作。 我在执行以下操作时遇到问题,这会导致内存泄漏: MyObject data = (MyObjec
我在我的应用程序中使用了第三方工具。在某些系统上,我收到 System.AccessViolation 错误。虽然,通过代码我无法重现该问题。但在生产环境中它有时会重现。 我对下面的代码有疑问 pub
如果我用 StructureToPtr 编码这个结构,然后用 PtrToStructure 再次解码它,我的第一个节点有 y = {1,2} 而我的第二个节点有 y = {1,0}。 我不知道为什么,
我有结构: type OneDevice = { mutable id : System.UInt16 mutable typeDev
我正在开发一个项目,其中唯一需要与之通信的库是一个 .dll 文件,而我拥有的资源是一个带有源代码的 C# 工作项目;我正在使用 JNA 访问 native 代码,目前在调用该方法时遇到无效内存访问;
我正在使用自定义调试引擎,当我将我的结构编码到 IntPtr 时,Visual Studio 崩溃(被调试的不是调试器)。 我的结构只不过是: public struct DocumentContex
我将从一些历史开始:我目前面临的问题是在没有对代码进行任何更改的情况下突然出现的。然后在3天后以同样的方式消失。现在它一周后又回来了,不想离开=)。 我有适用于打印机的代码 - 设置打印机首选项以指定
我有 C# 类: namespace Models { [StructLayout(LayoutKind.Explicit, Size = 120, CharSet = CharSet.Uni
我在我的代码中使用用 C++ 编写的 API(用 C# 编写)。API 需要一个参数作为指向结构的指针。该结构由“Int”和 Char 数组组成:例如 unsafe public struct To
这是我的代码: internal void Show() { if (Parent == null) throw new NullReferenceException();
我是一名优秀的程序员,十分优秀!