MetaTrader 4 Build 529 beta lançado com novo compilador - página 49

 
Interesting:
E sem código como ajudar?

O código é de 200 linhas, + ele não é nada comentado (eu traduzi a função e sua referência a trilhos OOP).

Pensei que alguém tivesse encontrado similares (eu mesmo suspeito de construtores e destruidores, eu os tenho tanto na classe base quanto em descendentes por padrão (não especificados de forma alguma))

Se eu precisar, postarei o código, eu mesmo o comentarei de qualquer maneira,

Mas eu a postarei amanhã, vou dormir agora.

 

Quando ShellExecuteA é chamada da shell32.dll, esta mensagem aparece:

Vocêpoderia chamar "shell32.dll :: ShellExecuteA, DLL não permitida
Acesso violação escrever 0x00000000

Eu o chamo assim:

#importar "shell32.dll"
int ShellExecuteA(int a0,string a1,string a2,string a3,string a4,int a5);
#importar

PS. esqueceu de ativar a permissão de chamada dll, mas se você ativar a permissão de chamada dll, o terminal trava quando você executa o testador

 
VOLDEMAR:

Oppa, uma voz do passado .... Por acaso você não teria a primeira construção, teria?

Bild 541, é claro.
 
Barbarian:

Quando ShellExecuteA é chamada da shell32.dll, esta mensagem aparece:

Vocêpoderia chamar "shell32.dll :: ShellExecuteA, DLL não permitida
Acesso violação escrever 0x00000000

Eu o chamo assim:

#importar "shell32.dll"
int ShellExecuteA(int a0,string a1,string a2,string a3,string a4,int a5);
#importar

PS. esqueceu de ligar a permissão para chamar a dll, mas se você ligar a permissão para a dll, o terminal trava quando você executa o testador


As cordas são agora unicode.

Você precisa usar a versão unicode da função

#import "shell32.dll"
int ShellExecuteW(int a0,string a1,string a2,string a3,string a4,int a5);
#import

 
ALXIMIKS:

O código é de 200 linhas, + ele não é nada comentado (eu traduzi a função e sua referência a trilhos OOP).

Pensei que alguém tivesse encontrado similares (eu mesmo suspeito de construtores e destruidores, eu os tenho tanto na classe base quanto em descendentes por padrão (não especificados de forma alguma))

Se eu precisar, postarei o código, eu mesmo o comentarei de qualquer forma,

Mas eu a postarei amanhã, vou dormir hoje à noite.


Se não houver nada secreto, afixe o código e os passos para reproduzir ou para servir. Obrigado

 
stringo:

As cordas são unicode.

Você precisa usar a versão unicode da função

Sim, não é tão simples assim, parece que você ainda precisa escrever L na frente dos literais das cordas.
 
digits:

me ajudar a entender porque este código compilado no 509 funciona quando chamado de um EA

na EA, o código é chamado e tratado desta forma:

mas se o código for compilado em ME a partir do build 540, então o arquivo de registro EA escreve:

E a EA não funciona corretamente ou não funciona em absoluto.


Você já tentou construir o 541?

Tentaram se reproduzir com base em suas fontes até agora sem sucesso. Você pode colocar todas as fontes e detalhes (SO, símbolo, corretor, pasta de instalação, permissões, etc.) no servicedesk

 
ALXIMIKS:

Você pode me dizer a possível causa do acidente))

Fiz a principal função de cálculo no indicador através do OOP (tenho estudado isso já há alguns dias).

Tudo funciona bem (a 3000 barras a velocidade de cálculo aumentou 2-3 vezes).

Mas quando tento executar 2 indicadores , ele trava e tudo trava ......


É melhor ir direto para Servicedesk com todas as fontes e uma descrição.
 
nulo OnStart()
{
//---
//+------------------------------------------------------------------+
//| O roteiro exibe informações sobre a ferramenta |
//+------------------------------------------------------------------+
Imprimir("Símbolo=",Símbolo());
Print("Point size in the quote currency=",MarketInfo(Symbol(),MODE_POINT));
Print("Minimum step of security price change in points=",MarketInfo(Symbol(),MODE_TICKSIZE));
}

LOG:

2013.11.15 12:43:11.716 ttt EURUSD,M1: removido

2013.11.15 12:43:11.716 ttt EURUSD,M1: Degrau mínimo de variação do preço da segurança em pontos=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Tamanho da tubulação na moeda de cotação=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Símbolo=EURUSD

2013.11.15 12:43:11.707 ttt EURUSD,M1: carregado com sucesso


 
HIDDEN:
nulo OnStart()
{
//---
//+------------------------------------------------------------------+
//| O roteiro exibe informações sobre a ferramenta |
//+------------------------------------------------------------------+
Imprimir("Símbolo=",Símbolo());
Print("Point size in the quote currency=",MarketInfo(Symbol(),MODE_POINT));
Print("Minimum step of security price change in points=",MarketInfo(Symbol(),MODE_TICKSIZE));
}

LOG:

2013.11.15 12:43:11.716 ttt EURUSD,M1: removido

2013.11.15 12:43:11.716 ttt EURUSD,M1: Degrau mínimo de mudança do preço simbólico em pontos=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Tamanho da tubulação na moeda de cotação=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Símbolo=EURUSD

2013.11.15 12:43:11.707 ttt EURUSD,M1: carregado com sucesso


Confuso com o formato científico da saída dos dados?

1e-005.0 = 0.00001. Cinco dígitos, afinal de contas.
Para imprimir em representação de ponto decimal, use DoubleToStr dentro do Print ou vá para a nova versão do Print: PrintFormat.

Razão: