【发布时间】:2012-12-30 19:12:32
【问题描述】:
有时我需要处理巨大的 PDF 文件,在这种情况下,我会在循环中使用一些 new 运算符,这是一个如此巨大的循环,以至于将使用超过 10 GB 的内存。众所周知,我必须使用一些WIN API函数来使用硬盘。但我不知道如何实现它。谁能帮帮我?
这是一个代码sn-p:
CMyObject gg_data;
for(__int64 i = 0; i < up_limit(__int64); ++i)
{
//add new data to the PDF file
CCAry pData = new CCAry("myData");
gg_data.AddRef(pData);
}
//after the loop, save file and free memory so that no memory leaks occur...
//Caution: the "save" is a very expensive work, it will take several hours!!!
gg_data.save();
【问题讨论】:
-
10GB PDF 文件。 文件之母...
-
您能否详细说明您分配内存的具体内容以及您如何使用这些内存?整个文件?如果是这样,您是否修改内存中的文件?另外,您的系统是 32 位还是 64 位?
-
我想将自己的一些数据添加到现有的PDF文件中,并做一些修改工作。我希望我的应用程序可以在 x86 和 x64 上运行。而且我使用的是 Visual C++ 2010。
-
你可能需要像file mapping这样的东西
-
这里是关于文件映射的限制 - stackoverflow.com/questions/726471/…
标签: c++ windows visual-studio-2010 stl mfc