PowerPoint 2010内存泄漏

本文关键字:泄漏 内存 2010 PowerPoint | 更新日期: 2023-09-27 18:05:39

我正在为Microsoft PowerPoint开发自定义插件。我的插件需要将大量二进制数据存储到PowerPoint演示文稿中。我将这个二进制数据作为base 64编码字符串存储到PowerPoint演示标记中。我发现,当演示文稿的标签中包含大量数据(如10兆以上)时,PowerPoint在保存演示文稿时似乎会泄漏内存。因此,当这样的演示文稿多次保存时,PowerPoint甚至会耗尽系统内存并崩溃。

我开发了一个非常简单的c#插件来隔离这个问题。当创建新的表示时,它将50兆字节的二进制数据存储到表示中:
private void Application_AfterNewPresentation(PowerPoint.Presentation presentation)
{
    int tagLength = 5 * 1000 * 1000;
    StringBuilder largeTagValue = new StringBuilder();
    largeTagValue.Capacity = tagLength + 2;
    for (int i = 0; i < tagLength; i++)
    {
        largeTagValue.Append("A");
    }
    largeTagValue.Append("'0");
    string largeTagValueString = largeTagValue.ToString();
    for (int i = 0; i < 10; i++)
    {
        presentation.Tags.Add("LARGE_TAG" + i.ToString(), largeTagValueString);
    }
}

在运行这个插件之后,我甚至可以禁用它以确保它不再做任何事情。接下来,我多次保存演示文稿,并看到每次保存演示文稿时,进程列表中的PowerPoint内存使用都会增加。

完整的源代码和示例演示可以在这里获得

有谁知道这是一个PowerPoint的错误,或者有什么解决这个问题的方法吗?

或者,也许有另一种方法可以将相对大量的数据存储到PowerPoint演示文稿中?

PowerPoint 2010内存泄漏

再搜索一下就发现了…先来看看Todd Main的回答,大致了解一下需要什么:

可以在Word文档中添加一些数据吗?