Erros, bugs, perguntas - página 2066

 
fxsaber:

Este parece ser o comportamento errado para a língua, uma vez que limita as possibilidades.

Preciso de definir um campo constante como uma estrutura. Pensei que o operador da cópia iria funcionar, mas o compilador quer antes um construtor, porque a sintaxe é semelhante. Mas é errado.

É correcto porque é inequívoco (é sempre um construtor na lista de inicialização, não um operador), é errado de outra forma:

struct S {
        S()                        { Print( __FUNCSIG__ ); }
        void operator=( const S& ) { Print( __FUNCSIG__ ); }
};
void OnStart()
{
        S s;
        S s1 = s;

}

Resultado:

vazio S::S() (1)
vazio S::S() (2)
vazio S::operator=(const S&) (3)

enquanto C++ não produz linhas (2) e (3), e portanto não substitui o construtor de cópias em falta por uma simbiose do construtor padrão e do operador de atribuição

 

Se um objecto BMP teve o seu recurso eliminado e depois criado novamente, o objecto BMP já não vê o seu recurso. Isto é um erro. Agora tem de apagar o objecto e recriá-lo novamente.

 
fxsaber:

Se um objecto BMP teve o seu recurso apagado e depois criado novamente, o objecto BMP já não vê o seu recurso. Isto é um erro. Agora tem de apagar o objecto e recriá-lo novamente.

Pode mostrar-nos o código? Porque precisa de apagar um recurso, pode sobreescrevê-lo/modificá-lo sem o apagar.
 

Situação:

Uma posição de mercado de um consultor especializado de terceiros foi seleccionada com sucesso por OrderSelect(ticketNumber,SELECT_BY_TICKET) e é feita uma tentativa no laço para o fechar (a selecção da ordem no bilhete foi feita antes do laço da tentativa de fecho).


Recebo um erro:

2017.11.10 06:00:33.806 ExpertName EURCAD,H1: unknown ticket 1846978258 for OrderClose function

O bilhete está ok.


É natural que a nossa EA possa fechar essa ordem independentemente, por isso

em cada iteração de laço, verificamos

if(OrderCloseTime()!=0) break;


que não dá o resultado desejado e a mensagem sobre o número errado do bilhete é exibida todas as 30 vezes do ciclo.

Uma mão má ou é um insecto com a perda de uma ordem seleccionada ?

Ou o número de erro pode não reflectir exactamente a situação/problema ?


Actualização:

Descobri que a posição é fechada não pela EA nativa, mas por aquela que fechamos.

Contudo, antes do erro cíclico 4108 recebemos um erro único 3 (embora antes do erro 3 ser registado a ordem tenha sido encerrada).

 
Kirill Belousov:

Naturalmente, a EA nativa poderia fechar esta ordem de forma independente, por isso

Em cada iteração do laço, a verificação é feita.

Temos também de fazer OrderSelect.

 
Andrey Barinov:
Pode mostrar-me o código? Porquê apagar o recurso, pode voltar a descarregá-lo / modificá-lo sem o apagar.

Recarregado sem eliminação sem qualquer problema, claro. Após eliminação, problemas.

#define  WIDTH 100
#define  ARGB(a,r,g,b)  ((uchar(a)<<24)|(uchar(r)<<16)|(uchar(g)<<8)|uchar(b))

bool Set( const string Name, const uint &Data[], const uint Width )
{
  return(ResourceCreate(Name, Data, Width, (Width == 0) ? ArraySize(Data) : ArraySize(Data) / Width, 0, 0, Width, COLOR_FORMAT_ARGB_NORMALIZE));
}

void Test( const string Name )  
{
  static uint Data[WIDTH * WIDTH];
  
  for (uchar i = 0; i < 100; i++)
  {
    ArrayInitialize(Data, ARGB(0xFF, i, i, 0));
    ArrayInitialize(Data, ARGB(0xFF, i, i, 0));
    
    Set(Name, Data, WIDTH);
    
    ChartRedraw();
    
    Sleep(50);
  }
  
  ResourceFree(Name);  
}

void OnStart()
{  
  const string ObjName = __FILE__;
  const string Name = "::" + ObjName;
  
  ObjectCreate(0, ObjName, OBJ_BITMAP_LABEL, 0, 0, 0);
  ObjectSetString(0, ObjName, OBJPROP_BMPFILE, Name);
  
  // Видна работа
  Test(Name);
  
  // Нет результата на экране
  Test(Name);
  
  ObjectDelete(0, ObjName);
}
 

Nenhuma mensagem de

Mensagens do sistema


Nenhuma mensagem. Incluindo , mensagem de produto, venda de produto, observações do moderador, mensagem de validação de produto.

 
Vladislav Andruschenko:

Não estão a chegar quaisquer mensagens de

Mensagens do sistema


Nenhum. incluindo , mensagem de produto, venda de produto, observações do moderador, mensagem de validação de produto.

Boa tarde.

O bug foi corrigido, temos de esperar pela actualização do site.

Pedimos desculpa pelo inconveniente.

 
Julia Test:

Boa tarde.

O erro foi corrigido, temos de esperar que o sítio seja actualizado.

Desculpem o incómodo.


Obrigado. já respondeu ao SD. :-) à espera...

P.S. Nunca tinha estado tão sossegado antes.... silêncio directo .........

 
fxsaber:

Também tem de fazer OrderSelect.

Podemos ter detalhes sobre a razão disto?

Seleccionámos com sucesso uma encomenda num bilhete.

Enviámos um comando próximo na iteração 1.

Nesta iteração #1, recebemos o erro 3 (Parâmetros de comércio inválidos). No entanto, a encomenda foi encerrada. Como foi encerrado?

Depois recebemos o erro 4108 na iteração 2. Não podemos fechá-lo usando OrderCloseTime!=0.


Em que fase, de acordo com a documentação, perdemos a ligação com a encomenda seleccionada pelo bilhete?

Não será este um caso em que, após o envio do comando de fecho, a ordem deveria ter sido bloqueada e o erro 139 deveria ter sido gerado em vez de 4108?