问题标签 [carchive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
946 浏览

c++ - CArchive 当前指向文件的位置

我有一个代码,其中 CArchive 用于读写和归档。经过调查,我发现 CArchive 对象在从文件的不同部分读取数据时会更改其位置。例如,如果文件结构就像有标题,然后是正文,然后是页脚。现在,如果有人想读取页脚,那么 CArchive 只能通过转到文件中的特定位置来读取页脚。这是通过这个来完成的。

现在我有兴趣知道 CArchive 将在哪个位置读取或写入。字节索引,文件位置或类似的东西。

0 投票
0 回答
387 浏览

c# - C# 中的 COleStreamFile::OpenStream 替换

我有一个用 MFC 编写的用于文件读写的代码。我正在为 C# 重写它。

我的文件由三部分组成,Header * Body * 和Footer。现在在 MFC 代码中,CArchive 可以写入/读取任何这些部分。这是由COleStreamFile::OpenStream完成的。在这个方法中,我们给出了要读取的部分,这将返回指向文件中该位置的流。CArchive 然后使用流和读/写文件。

现在,当我执行ar >>ar <<之后,我没有从头开始读取文件。它正在从中间或结尾读取(取决于流)。现在我想要的是将此代码转换为 C#。什么是C#中COleStreamFile::OpenStream的替代品。

这是我到目前为止所做的。

现在这里流指向开始。我想我可以让它从特定字节读取。但我不知道那个字节位置。我所知道的是MFC 代码正在使用的HeaderBodyFooter名称。

或者有什么方法可以在读取或写入时找出CArchive的当前位置。如果我从那里获得字节位置,我也可以使用它。

0 投票
1 回答
475 浏览

c# - 从 CArchive 保存的二进制数据中读取结构数组

我正在尝试从 CArchive 正在写入的文件中读取数据。我有用于使用 CArchive 进行读写的原始源。但是,我正在尝试通过 C# 代码阅读此内容。我能够读取文件的大部分内容,但是当我必须读取写入文件中的结构数组时我被卡住了。

我在stackoverflow上看到了其他问题,但它们对我没有用。

将二进制文件读入结构

从字节数组中读取 C# 中的 C/C++ 数据结构

他们建议使用此功能。

但这对我来说效果不佳。

所以这是我的 C++ 代码:

结构:

CArchive 读取代码:

现在 C# 代码:

我的结构

现在在这个电话之后,当我检查结构集合时,节点数据不正确。对于集合中的第六个结构,两个字段的值是 256,在第 7 或第 8 个结构之后,所有字段都是 256。现在这是错误的数据。我已经通过 C++ 代码阅读了这篇文章,并且效果很好。字段值为 1 或 0,但 256 数据完全无效。

0 投票
1 回答
672 浏览

serialization - 使用序列化在基于对话框的 MFC 应用程序中保存和加载滚动条状态。

我正在开发一个基于对话框的 MFC 应用程序,该应用程序由复选框、滚动条、按钮、编辑控件等组成。我正在尝试将应用程序的当前状态保存到 .txt 文件中,然后在应用程序再次启动时将其加载回来。我使用 CArchive 类来序列化数据。

// 保存应用程序设置

}

//从文件中加载设置

{

}

我能够保存和加载复选框、文本框中的数据以及单选按钮状态,但我发现很难恢复滚动条上次保存的位置。

//滚动条控制代码

{

}

我也不知道如何将静态文本链接到滚动条。我的意思是如果我在中间有滑块,它应该说“滑块在 50(范围:0-100)”。有人可以指导我如何做到这一点吗?

0 投票
1 回答
604 浏览

c# - C# 中的 MFC 对象序列化

我正在尝试读取 C# 中的二进制文件,该文件实际上是使用 CArchive 编写的。我已经完成了大部分工作,但一直在阅读一个对象。而不是写 bool,int,double 对象已被写入二进制。

所以原始代码是这样的。

所以问题是如何在 C# 中翻译这段代码。

0 投票
2 回答
503 浏览

visual-c++ - 使用运算符 << >> 的 CArchive 序列化未找到采用 cArchive 类型的左手的运算符

按照本教程, http: //msdn.microsoft.com/en-us/library/vstudio/3bfsbt0t.aspx我实现了这个代码:

然后我打电话:

但我得到 << operator no operator found 它采用 cArchive 类型的左手

0 投票
1 回答
423 浏览

php - CArchive (MFC) 到 JSON?

我必须从服务器接收数据。服务器的应用程序是用 VS2008 (MFC) 编写的。只有一种方法可以从服务器 -> 作为 CArchive 对象发送此数据。我无法更改服务器源。

我想用 PHP(通过 tcp)接收这些数据,并将它们转换为 JSON。将CArchive转换为JSON有什么聪明的方法吗?

0 投票
1 回答
101 浏览

c++ - c++的执行顺序

我创建了一个测试程序carchive。我想看看保存一百万个数据点需要多快:

当我运行这段代码时,创建数据点需要一些时间,但它几乎会立即运行其余代码。但是,我必须等待大约 4 分钟才能让应用程序真正完成运行。我假设应用程序会在序列化数据部分等待挂起,就像它在创建数据点期间所做的那样。

所以我的问题是关于这实际上是如何工作的。是否carchive在单独的线程上执行它并允许其余代码执行?

如有必要,我可以提供更多信息。

0 投票
1 回答
135 浏览

c# - 读取使用 CArchive Ar(&SaveDataStoreDetail, CArchive::store) 存储的数据;

我有使用存储值的 dat 文件

如何从此文件中读回数据

0 投票
0 回答
224 浏览

opencv - 如何将 cv::Mat 写入 CArchive?(在MFC函数Serialize(CArchive&ar)中)

我正在尝试编写matImage

通过 MFC 应用程序中的 Serialize(CArchive& ar) 到 bmp 文件(例如“test.bmp”)。

此代码不起作用

如何正确执行此操作?

更新

这段代码不够好,但它有效