如何编码? - 页 333

 

HI Mladen,

我已经做了。

但当放在MT4中时。

子窗口上没有出现任何东西。

请研究一下这个源代码。

谢谢。

附加的文件:
 
luffy:
HI Mladen,

我已经做到了。

但当放在MT4中时。

子窗口上没有出现任何东西。

请研究一下这个源代码。

谢谢。

吕飞

有两件事。

1.在S = (Q/ R)之前加上if (R!=0)。

2.你正在循环浏览所有的条形图,但你的数组只包含14个元素。如果你想使用像缓冲区一样的数组(具有与图表上的条形图相同数量的元素),那么数组的大小应该总是被检查并相应地调整)。你可以查看这个指标:https://www.mql5.com/en/forum/174961/page22(iHull()函数),看看在这种情况下如何使用数组。

 

请谁来做这个,让它在子窗口中画线

我试过了,但还是不能让它画线。

请帮助我。

 
luffy:
请谁来做这个,在子窗口中画线。

我试过了,但还是不能让它画线

请帮助。

拉菲

既然你想把这些数组作为缓冲区使用,那就在init部分把它们都声明为缓冲区(在新的metatrader 4中不再有8个缓冲区的限制),这样就可以了。

这是迄今为止最简单的解决方案

 

有什么方法可以让我限制代码只在一台电脑上工作吗?

 
apprentice coder:
有什么办法可以限制代码只在一台电脑上工作?

你可以通过限制在C:分区序列号(使用GetVolumeInformation()windows API函数)来做到这一点。

该函数的格式如下。

BOOL WINAPI GetVolumeInformation(

_In_opt_ LPCTSTR lpRootPathName,

_Out_opt_ LPTSTR lpVolumeNameBuffer。

输入DWORD nVolumeNameSize。

_Out_opt_ LPDWORD lpVolumeSerialNumber,

_Out_opt_ LPDWORD lpMaximumComponentLength。

_Out_opt_ LPDWORD lpFileSystemFlags,

_Out_opt_ LPTSTR lpFileSystemNameBuffer。

_In_ DWORD nFileSystemNameSize

);

它在kernel32.dll中。但如果用户格式化了他的C: 分区,你也必须更新代码。

 
mladen:
你可以通过限制在C:分区序列号(使用GetVolumeInformation()windows API函数)来做到这一点

该函数的格式如下。

它在kernel32.dll中。但如果用户格式化了他的C:分区,你也必须更新代码。

谢谢

会试一试的

 
mladen:
你可以通过限制C: 分区序列号来做到这一点(使用GetVolumeInformation()windows API函数)

该函数的格式如下。

它在kernel32.dll中。但如果用户格式化了他的C: 分区,你也必须更新代码。

不幸的是,这个函数 并不能单独满足需要。除了我可以看到一些客户有相同的驱动器序列外,最糟糕的情况是在Mac和linux上运行的Windows模拟器,它们对这个序列总是返回0。很多用户都在使用它们。

 
Ovo:
不幸的是,这个功能并不能单独满足需要。除了我可以看到一些客户有相同的驱动器序列,最糟糕的情况是在Mac和linux上运行的Windows模拟器,它的序列总是返回0。很多用户都在使用它们。

不知道仿真器的事

那么加密狗似乎是一个解决方案,但我已经看到很多加密狗被破解了,所以......

 
mladen:
不了解仿真器 那么加密狗似乎是一个解决方案,但我已经看到很多加密狗被破解,所以...

事实上,有多个模拟器,只有部分模拟器返回零(如wine)。

我检查了我的统计数据--在9000个MT4数据库注册中,有290个序列号等于0,所以大约3%。一般来说,仿真器不能正确实现与HW相关的功能,有些调用甚至在调用时冻结了终端。所以不确定加密狗是否能可靠地解决这个问题。到目前为止,我还没有找到一个能在所有模拟器上工作的解决方案。