초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 855

 

그래도 나에게는 제기된 질문에 대한 답을 얻는 것이 중요합니다.

방법 CTrade::Buy , CTrade::Sell, CTrade::ClosePosition

false가 반환되면 Retcode를 무시해야 한다는 의미입니까?

true가 반환되면 Retcode가 항상 올바른 값으로 채워진다는 의미입니까?

고맙습니다.

 

동료 여러분, 이해를 돕습니다.

레지스트리 작업을 마스터하려고하는데 테스트를 위해 간단한 고문을 던졌습니다. 시스템 레지스트리에서 데이터를 읽는 것은 문제 없이 진행되지만 쓰기에 문제가 있고 MT와 메모리가 충돌합니다... (((

내 눈이 이미 흐릿하고 명확한 것을 보지 못하는 것일 수도 있습니다 ...

파일:
TestReg.mq5  25 kb
 
Алексей Барбашин :

동료 여러분, 이해를 돕습니다.

레지스트리 작업을 마스터하려고하는데 테스트를 위해 간단한 고문을 던졌습니다. 시스템 레지스트리에서 데이터를 읽는 것은 문제 없이 진행되지만 쓰기에 문제가 있고 MT와 메모리가 충돌합니다... (((

내 눈이 이미 흐릿하고 명확한 것을 보지 못하는 것일 수도 있습니다 ...

여기에서는 모든 것이 간단해야 합니다. API 함수에 대한 각 호출 전후에 로그에 무언가를 출력합니다. 충돌 후 충돌 사이트는 로그에서 지워집니다.

 
. ... Rick D. ... . :

여기에서는 모든 것이 간단해야 합니다. API 함수에 대한 각 호출 전후에 로그에 무언가를 출력합니다. 충돌 후 충돌 사이트는 로그에서 지워집니다.

따라서 로그는 등록할 시간이 없으며 터미널은 오류와 함께 닫힙니다. ((메모리 누수가 있다고 가정합니다. 그러나 동적 객체(신규)를 사용하지 않습니다. 이것을 처리하고 그러한 문제를 식별하는 방법을 모르겠습니다 ;(

 
Алексей Барбашин :

따라서 로그는 등록할 시간이 없으며 터미널은 오류와 함께 닫힙니다. ((메모리 누수가 있다고 가정합니다. 그러나 동적 객체(신규)를 사용하지 않습니다. 이것을 처리하고 그러한 문제를 식별하는 방법을 모르겠습니다 ;(

나는 여기에서 당신의 예를 약간 수정했습니다.
파일:
TestReg.mq5  26 kb
 
. ... Rick D. ... . :
나는 여기에서 당신의 예를 약간 수정했습니다.

나는... 충격을 받았어, 기분 좋게 충격을 받았어. 레지스트리에 대한 비동기 로드를 보장하기 위해 한 번에 여러 차트에 변경 사항을 적용했습니다. 모든 것이 안정적으로 작동합니다. API에 매개변수를 전달하는 원칙을 변경했습니다. 즉, 반환 값이 사용되는 곳에서 참조로 전달하는 배열을 사용했습니다. 이는 mql에서 주소 전달 또는 C++ 관점에서 포인터를 의미합니다. 그러나 API의 모든 단순 데이터 유형이 이미 참조로 전달되었기 때문에 10년 전에 설명된 이 접근 방식을 시대착오적이라고 생각했습니다. 그러나 이것은 분명히 내 실수이자 근시안이었습니다. 즉, 단순 유형이 그렇게 고통스럽게 전송되지 않는다는 것을 의미합니다 API에 . 올바른 방향으로 저를 가르쳐 주셔서 감사합니다! )))

 
Алексей Барбашин :

나는... 충격을 받았어, 기분 좋게 충격을 받았어. 레지스트리에 대한 비동기 로드를 보장하기 위해 한 번에 여러 차트에 변경 사항을 적용했습니다. 모든 것이 안정적으로 작동합니다. API에 매개변수를 전달하는 원칙을 변경했습니다. 즉, 반환 값이 사용되는 곳에서 참조로 전달하는 배열을 사용했습니다. 이는 mql에서 주소 전달 또는 C++ 관점에서 포인터를 의미합니다. 그러나 API의 모든 단순 데이터 유형이 이미 참조로 전달되었기 때문에 10년 전에 설명된 이 접근 방식을 시대착오적이라고 생각했습니다. 그러나 이것은 분명히 내 실수이자 근시안이었습니다. 즉, 단순 유형이 그렇게 고통스럽게 전송되지 않는다는 것을 의미합니다 API에 . 올바른 방향으로 저를 가르쳐 주셔서 감사합니다! )))

옛날 옛적에 MT4에서는 1차원 배열을 통해 API 함수에 대한 포인터를 전달하도록 가르쳤습니다. 현재 변경 사항이 있고 누군가 이를 확인할 수 있다면 새로운 접근 방식을 사용하겠습니다.

그러나 당신은 여전히 유형과 혼동했습니다. 특히 Windows의 long과 MQL5의 long은 크기가 다릅니다.
다른 차이점을 찾을 수도 있습니다.

 
. ... Rick D. ... . :

옛날 옛적에 MT4에서는 1차원 배열을 통해 API 함수에 대한 포인터를 전달하도록 가르쳤습니다. 현재 변경 사항이 있고 누군가 이를 확인할 수 있다면 새로운 접근 방식을 사용하겠습니다.

그러나 당신은 여전히 유형과 혼동했습니다. 특히 Windows의 long과 MQL5의 long은 크기가 다릅니다.
다른 차이점을 찾을 수도 있습니다.

나는 모든 차이점을 보았습니다))) 대단히 감사합니다!

유일한 질문은 레지스트리에 저장된 데이터의 크기입니다. 설명서의 예(https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspx)에 따르면, 수정된 파일(짧은 버프[1024];). 내 말이 맞아?
RegQueryValueEx function (Windows)
  • msdn.microsoft.com
Retrieves the type and data for the specified value name associated with an open registry key. To ensure that any string values (REG_SZ, REG_MULTI_SZ, and REG_EXPAND_SZ) returned are null-terminated, use the RegGetValue function. Syntax Parameters hKey [in] lpValueName [in, optional] The name of the registry value. If lpValueName is NULL or an...
 
Алексей Барбашин :

나는 모든 차이점을 보았습니다))) 대단히 감사합니다!

유일한 질문은 레지스트리에 저장된 데이터의 크기입니다. 설명서의 예(https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspx)에 따르면, 수정된 파일(짧은 버프[1024];). 내 말이 맞아?
권리. 더 많은 데이터가 있을 수 있습니다. 큰 데이터의 경우 먼저 길이를 요청한 다음 배열의 크기를 동적으로 조정한 다음 모든 데이터를 가져오는 것이 맞습니다.
 
. ... Rick D. ... . :
권리. 더 많은 데이터가 있을 수 있습니다. 큰 데이터의 경우 먼저 길이를 요청한 다음 배열의 크기를 동적으로 변경한 다음 모든 데이터를 가져오는 것이 맞습니다.

흠.. 아마 API를 자세히 안봐서 그런 기능은 눈치채지 못했나보네요.... 그리고 아마 편할겁니다.

더 말씀해 주시겠습니까... 질문이 너무 .. 말도 안 됩니다... 어떻게 숫자(예: double)를 char 배열로 변환할 수 있습니까? 즉, 일부 API는 숫자가 포인터로 전달되어야 합니다. 포인터는 1차원 배열로 전달됩니다... 문자열의 경우에는 명확 하고 StringToShortArray 및 StringToCharArray 함수 가 제공되지만 숫자의 경우 여전히 바이트 배열(char)로 변환하는 방법을 알지 못합니다.

사유: