MFC CDocument:如何读取由已解散的应用程序创建的数据库文件的内容?

时间:2013-01-31 21:37:29

标签: visual-studio mfc

我几乎没有在Visual Studio,MFC等编码经验。但我有几个数据文件是在一个现已不存在的MFC应用程序中创建的,我需要将其迁移到另一种格式。

不幸的是,在应用程序本身中,提取数据(没有单独复制粘贴数百甚至数千条记录)是没有好办法的。并且查看文件本身,即在十六进制编辑器中,已经证明没有结果;即使应用程序存储的原始数据是基于文本的,数据库文件也会以某种神秘的二进制格式进行编码。

到目前为止,我已经能够确定应用程序是使用MFC编写的,并且它使用CDocument类(或其简单衍生物)来存储文件。我知道基于CDocument的数据文件与序列化数据有关,但我不确定如何理解编码。

  1. 有没有人对MFC有足够的了解向我解释CDocument的实际工作原理?

  2. 有没有人对如何解码这些文件以提取文本有任何想法?

1 个答案:

答案 0 :(得分:1)

我曾经遇到过几乎相同的情况。我最终计算出了反序列化数据的代码,但这并不容易。

编写一个小型MFC应用程序来完成工作,这样您就可以利用原始应用程序使用的相同序列化代码。反向工程数据格式的主题太复杂了,无法在此回答。它可能没有加密;更有可能压缩。

如果您是一位经验丰富的程序员,您应该能够阅读MFC源代码,然后将该知识应用于原始数据。并非一切都可以通过观察原始数据来启发式地确定,但如果您有一种独立的方法来确定实际内容,那么当然可以通过充分的工作来实现。