我已经四处寻找了一段时间,试图找到这个问题的答案,但我根本无法将我的头绕在读/写内存上。我认为读/写内存更适合 C++,因为你在那里管理它,因为 C# 通常会处理它。尽管如此,下面是我创建的名为DrawLevelCard的函数的 pastebim 链接。这样做的目的是为我的不和谐制作一张等级卡。问题是有时它会在以下行引发错误:
var measure3 = gr.MeasureString(" / " + ExpNeeded + " Exp", Levelfont);
错误:
An unhandled exception of type 'System.AccessViolationException' occurred in System.Drawing.Common.dll
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
这不会发生在任何其他行上,如果我将它全部删除,没有它我将无法复制它。问题是这对于我设置图像的方式有点必要。PasteBin:https ://pastebin.com/ab00GLLs
卡片图片供参考: https ://i.imgur.com/q7nz2K6.png
更新:如果有人需要额外信息,这是完整的课程:) https://pastebin.com/Bbi7zt2b