错误、漏洞、问题 - 页 1870

 
Slava:
而这不应该是可能的。
但这曾经是可能的!
 
试图解决这个问题
template <typename T>
class CLASS_COPY
{
public:
  T Data;

  CLASS_COPY( const T &Value )
  {
    Data = Value;
  }
};

template <typename T1, typename T2>
void Copy( T1 &ObjectDst, const T2 &ObjectSrc )
{
   const CLASS_COPY<T2> Object(ObjectSrc);
   const CLASS_COPY<T1>* ObjectCopy = dynamic_cast<const CLASS_COPY<T1>*>(&Object);
   
   ObjectDst = ObjectCopy.Data; // invalid pointer access
}

编译没有问题,但在执行时出现错误而崩溃。现在如何编写Copy-function?

 

以前能用的DLL不再能用了。DLL是64位的。在MT4上使用同样的dlls x32 - 工作。

Windows 10 Home (x64 based PC), 1703, MT5 bild 1589
 
fxsaber:
我试图摆脱它的束缚

它的编译没有问题,但在执行时却出现了错误,崩溃了。现在如何写一个Copy-function?

如果dll不是关键的,那么就用memcpy。或者你可以等待联盟的到来。

嗯,实际上它很有趣。开发者们自己称铸造结构是替代联合体的标准,现在他们可能不铸造结构,但还不是联合体。

 
市场上接受从哪种建筑到哪种EX5s?
 
Комбинатор:

一般来说,当然很有趣。铸造结构被开发者自己称为联盟的标准替代品,现在你不能铸造,协会还没有,对吗?

因此,随着联盟的出现,它将不可能被铸造。只有简单的情况才有可能。
 
fxsaber:

现在如何编写Copy-function?

作为一个完全变态的使用文件,但原生的
FileReadStruct - Файловые операции - Справочник MQL4
FileReadStruct - Файловые операции - Справочник MQL4
  • docs.mql4.com
FileReadStruct - Файловые операции - Справочник MQL4
 
Комбинатор:
使用文件是多么的完全反常,但原生的
是的,这就是两者。
 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

fxsaber, 2017.04.10 16:23

创建不必要的重载,导致编译错误
template <typename T>
T Func()
{
  T Res;
  
  return(Res);
}

template <typename T>
void Func( T& Value )
{
  T Res = (MqlTick)Value;
}

void OnStart()
{
  Func<string>(); // без этой строки компилируется
  
  MqlTick Tick;
  
  Func(Tick);
}

编译器正试图创建一个

void Func( string& );
为什么这段代码在1589中不能编译?这里不存在铸造。
 
Комбинатор:

如果dll不是关键,那么就用memcpy。或者等待工会

当然,在一般情况下,这很有趣。铸造结构被开发者称为替代工会的标准,现在不可能铸造,还没有工会对吗?

就这样。