在内存INI文件编写器中

时间:2009-05-24 13:30:17

标签: memory mfc security wizard ini

我有一个基于向导的MFC应用程序。应用程序向用户询问可变数量的问题,然后将这些问题写入INI文件,该文件稍后在用户单击“完成”时加密。

到目前为止,我看到的所有INI文件解析器都可以读取或写入磁盘上的物理文件。我不想这样做,因为INI文件包含机密信息。相反,我希望INI文件只基于内存,而不是以未加密的形式写入磁盘。

由于该应用程序允许用户返回并更改答案,我突然意识到我可以使用内存数据库用于此目的,但我再次不想将任何内容写入磁盘并且不希望发送带有数据库的数据库我的应用程序,如果可以避免。

我必须使用INI文件,因为未加密的文件将由第三方处理。

欢迎任何建议。

谢谢..

4 个答案:

答案 0 :(得分:3)

我有一个IniFile C ++类,它允许你在内存中使用Ini文件: http://www.lemonteam.com/downloads/inifile.h

这是一个简短的,记录良好的单个.h文件。样品用法:

IniFile if ( "myinifile.ini" );

if.SetString( "mykey", "myvalue" );


// Nothing gets actually written to disk until you call Flush(), Close() or the object is deleted
if.Flush();
if.Close();

您应该能够修改Flush()方法,以便对保存的数据应用某种加密。

答案 1 :(得分:0)

听起来像是内存映射文件的一个很好的应用程序,因为您可以控制内存中视图何时刷新回磁盘上的文件。

答案 2 :(得分:0)

如果它永远不会存储到磁盘,为什么还需要以ini文件格式?

为什么不将它作为数据结构保存在内存中,并在需要时使用普通的ini文件方法将其写入磁盘。

答案 3 :(得分:0)

如果您不想保存到文件中,那么使用INI文件有什么意义呢? INI API基本上是基于磁盘文件的属性包或键值对。 如果您不想使用文件,我建议您使用自己的哈希或字典数据结构来存储键值值