资料库: 无需 DLL 的文件映射 - 页 4 123456789101112 新评论 Roman Ivanov 2013.01.02 21:53 #31 sergeev: 将它们作为 sizeof(<Type>)*<Number_Elements> 的长变量处理,一切都会解决:) 所以只需要这个类来传输指针?我还以为可以同时使用数组呢:( --- 2013.01.02 22:15 #32 baramantan: 所以这个类只能用来传输指针?我还以为可以同时使用数组呢 :( 你知道自己在问什么吗?:) Roman Ivanov 2013.01.05 18:35 #33 sergeev: 将它们作为 sizeof(<Type>)*<Number_Elements> 的长变量处理,一切都会解决:)void OnStart() { CMemMapFile hmem; int err=hmem.Open("Local\\\\test",111,modeCreate); int data[]; ArrayResize(data,50);err=hmem.Write(data,ArraySize(data)*sizeof(int)); ArrayInitialize(data,0); hmem.Seek(0,SEEK_SET); err=hmem.Read(data,ArraySize(data)*sizeof(int) ); hmem.Close(); } 我做对了吗?我做对了吗?如果不对,哪里出错了? --- 2013.01.05 19:03 #34 baramantan: 我做得对吗? 问 Debug,他百分百知道。 Roman Ivanov 2013.01.05 19:25 #35 sergeev: 去问 debag,他知道得一清二楚。你为什么非要用箭头移动来回复我的帖子?你能举例说明如何传递数组 int 或 double 吗? --- 2013.01.05 21:13 #36 如果连调试器都没有,你怎么检查? 你在学校是否习惯于在没有电脑的黑板上学习计算机科学?如果你想了解细节和示例,请阅读 MSDN。一般来说,人都是厚颜无耻的。他们已经把所有东西都转移到 MQL 中,并用注释把它们都嚼碎了,,所以让他们也为他们的 slivators 写函数:)结果会很奇怪。;) Roman Ivanov 2013.01.05 21:30 #37 sergeev:如果连调试器都没有,你怎么检查? 你在学校是否习惯于在没有电脑的黑板上学习计算机科学?如果你想了解细节和示例,请阅读 MSDN。一般来说,人都是厚颜无耻的。他们已经把所有东西都转移到 MQL 中,并用注释把它们都嚼碎了,,所以让他们也为他们的 slivators 写函数:)结果会很奇怪。;) 现在我不明白,如果你们不想回答我的问题,为什么还要在我的帖子里提问?我很震惊,编辑人员! Roman Ivanov 2013.01.05 23:15 #38 好吧,我来回答我自己的问题。我不得不拿起这个半成品。这个类不能处理 int 和 double 数组,原因很简单。声明的函数不能接受 int 或 double 类型的数组。该类只能处理 uchar " virtual int Write(const uchar &buf[],int sz); // write the specified number of bytes into memory " 。我根据自己的需要修改了配方,现将修改后的内容发布出来,你只能传递 int 数组。 如果作者没有修改完他的创作,我稍后会发布我自己的创作。 附加的文件: MemMapLib.mqh 17 kb MemMap.mq5 2 kb Libraries: File Mapping without Reading and modifying resource WebSocket protocol in MQL5 --- 2013.01.06 02:12 #39 baramantan:我来回答我自己的问题。我必须做一些调查所以我实现了我的目标:)这个类不能接受 int 和 double 数组,原因很简单。 声明的函数不能接受 int 或 double 类型的数组。这是显而易见的事实,它接受的是 uchar,而不是 <some_needed_type>。同样,你也可以要求这个 "半成品 "保存一个包含字符串的结构数组。跺跺脚--为什么作者没有预见到 "我需要的数据格式"。但你得到的是一个通用函数。小于一个字节的数据无处分割。这就是存储的原因。 因为任何数据类型 都可以转换成 uchar 数组(读取字节),所以对于这样一个类来说,它是最通用的。我根据自己的需要拼凑修改了配方,我把我得到的结果公布出来,你只能传递 int 数组。 以前是用 uchar,现在是用 int。 是的。进步:) Roman Ivanov 2013.01.06 07:09 #40 sergeev:所以我实现了我的目标:)这是显而易见的事实。它接受的是 uchar,而不是 <some_necessary_type>。同样,你也可以要求这个 "半成品 "保存一个包含字符串的结构数组。跺跺脚--为什么作者没有预见到 "我需要的数据格式"。但你得到的是一个通用函数。小于一个字节的数据无处分割。这就是存储的原因。 因为任何数据类型 都可以转换成 uchar 数组(读取字节),所以它是最通用的数据类型。 以前是 uchar,现在是 int。。进步 :))当然,我不是超级程序员。uchar 不能通用,因为它限制了用户,即: uchar 只适用于正值:uchar只适用于正值。最小值为 0,最大值为 255。任何超出 uchar 值的数据都将等于 uchar 的最大值或最小值。根据我所说的,我一开始就问 "如何传递 int 或 double"。我不明白你的意思,头儿。 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
将它们作为 sizeof(<Type>)*<Number_Elements> 的长变量处理,一切都会解决:)
所以这个类只能用来传输指针?我还以为可以同时使用数组呢 :(
将它们作为 sizeof(<Type>)*<Number_Elements> 的长变量处理,一切都会解决:)
void OnStart()
{
CMemMapFile hmem;
int err=hmem.Open("Local\\\\test",111,modeCreate);
int data[];
ArrayResize(data,50);
err=hmem.Write(data,ArraySize(data)*sizeof(int));
ArrayInitialize(data,0);
hmem.Seek(0,SEEK_SET);
err=hmem.Read(data,ArraySize(data)*sizeof(int) );
hmem.Close();
} 我做对了吗?
我做对了吗?如果不对,哪里出错了?
baramantan:
我做得对吗?去问 debag,他知道得一清二楚。
你为什么非要用箭头移动来回复我的帖子?
你能举例说明如何传递数组 int 或 double 吗?
如果连调试器都没有,你怎么检查? 你在学校是否习惯于在没有电脑的黑板上学习计算机科学?
如果你想了解细节和示例,请阅读 MSDN。
一般来说,人都是厚颜无耻的。他们已经把所有东西都转移到 MQL 中,并用注释把它们都嚼碎了,
,所以让他们也为他们的 slivators 写函数:)结果会很奇怪。
;)
如果连调试器都没有,你怎么检查? 你在学校是否习惯于在没有电脑的黑板上学习计算机科学?
如果你想了解细节和示例,请阅读 MSDN。
一般来说,人都是厚颜无耻的。他们已经把所有东西都转移到 MQL 中,并用注释把它们都嚼碎了,
,所以让他们也为他们的 slivators 写函数:)结果会很奇怪。
;)
好吧,我来回答我自己的问题。我不得不拿起这个半成品。
这个类不能处理 int 和 double 数组,原因很简单。
声明的函数不能接受 int 或 double 类型的数组。该类只能处理 uchar " virtual int Write(const uchar &buf[],int sz); // write the specified number of bytes into memory " 。
我根据自己的需要修改了配方,现将修改后的内容发布出来,你只能传递 int 数组。 如果作者没有修改完他的创作,我稍后会发布我自己的创作。
我来回答我自己的问题。我必须做一些调查
所以我实现了我的目标:)
这个类不能接受 int 和 double 数组,原因很简单。
声明的函数不能接受 int 或 double 类型的数组。
这是显而易见的事实,它接受的是 uchar,而不是 <some_needed_type>。
同样,你也可以要求这个 "半成品 "保存一个包含字符串的结构数组。跺跺脚--为什么作者没有预见到 "我需要的数据格式"。
但你得到的是一个通用函数。小于一个字节的数据无处分割。这就是存储的原因。
因为任何数据类型 都可以转换成 uchar 数组(读取字节),所以对于这样一个类来说,它是最通用的。
我根据自己的需要拼凑修改了配方,我把我得到的结果公布出来,你只能传递 int 数组。
是的。进步:)
所以我实现了我的目标:)
这是显而易见的事实。它接受的是 uchar,而不是 <some_necessary_type>。
同样,你也可以要求这个 "半成品 "保存一个包含字符串的结构数组。跺跺脚--为什么作者没有预见到 "我需要的数据格式"。
但你得到的是一个通用函数。小于一个字节的数据无处分割。这就是存储的原因。
以前是 uchar,现在是 int。因为任何数据类型 都可以转换成 uchar 数组(读取字节),所以它是最通用的数据类型。
。进步 :))
当然,我不是超级程序员。uchar 不能通用,因为它限制了用户,即: uchar 只适用于正值:uchar只适用于正值。最小值为 0,最大值为 255。
任何超出 uchar 值的数据都将等于 uchar 的最大值或最小值。
根据我所说的,我一开始就问 "如何传递 int 或 double"。我不明白你的意思,头儿。