MQL4에서 dll로 2차원 배열 전달

 

EA에서 어레이의 상태를 제어해야 합니다. 이를 위해 MQL4에서 2차원 배열을 수신하고 해당 상태를 별도의 팝업 창에 표시하는 C++ dll을 만들고 싶습니다.

내가 아는 한 MQL4에서 dll로 2차원 배열을 전송해야 하지만 정확히 2차원 배열을 전송하는 방법은 1차원의 차원을 알 수 없는 경우 MQL4 자체에서 함수가 변경됩니다. .

 
동적 배열을 만듭니다.
 

저는 프로그래밍을 처음 접하는데 이해를 도와주세요. 예를 들어 MQL4에 배열이 있습니다.

이중 질량[][6]

1. C++에서 dll로 어떻게 옮기나요?

2. C++에서 팝업 창에 표시하는 방법은 무엇입니까?

 

다양한 치질의 활성 및 비낙하 dll을 조각할 때 등 지붕 위, 따라서:

-> 1. 1차원 배열만 전송되도록 작업의 위치를 변경합니다("태그가 있는 가방" 방법으로).

-> 2. dll의 주요 개념은 dll이 함수 라이브러리라는 것입니다. 이것은 _calculation_ 모듈이므로 가능한 모든 방법으로 여기에서 그래픽/창 요소를 사용하지 않도록 합니다.

-> 3. (이러한 항목은 곧 형성될 것입니다.) : 문자열을 전달할 때 가장 덜 두통이 발생하는 문자열은 si 문자열입니다. 아종이 있는 유니코드의 경우 - mql을 사용하여 문자로 변환한 후 항목 1을 참조하십시오. 바이트;

-> 4. (그러한 항목은 곧 나타날 것입니다): dll이 계산을 위해 개체를 사용하는 경우 개체를 하나로 래핑하고 초기화 중에 핸들을 가져와 mql 프로그램에 전달한 다음 메서드를 호출하여 참조하는 것이 가장 좋습니다. 이 핸들에 의해 래퍼 개체에.

 

나는 이것을 파일을 통해 구현하는 것이 가장 쉬울 것이라고 생각합니다. 칠면조가 언로드되고, C++의 모듈이 로드 및 삭제되는 등 원 안에 있습니다.

 
MQL4에는 다차원 배열 이 없습니다. 1차원으로 전송, 가장 중요한 것은 크기를 올바르게 계산하고 전송하는 것입니다.
 

TheXpert :
В MQL4 нет многомерных массивов. Передавайте как одномерный, главное правильно размер высчитать и передать.

저것들. 배열이 array[10][6]이면 크기는 1차원에서 60이 될까요?

 
Barbarian :
네.
 
TheXpert :
네.
저것들. C ++에서 1차원 배열을 다시 2차원 배열로 변환하는 클래스를 만들어야 합니까?
 
Barbarian :
저것들. C++에서 1차원 배열을 다시 2차원 배열로 변환하는 클래스를 만들어야 합니까?

네. 틀림없이.

최근에 그런 클래스를 추가했습니다. 결과는 정말 다차원 동적 배열입니다. 저것들. 데이터 구조를 손상시키지 않고 이동 중에도 측정 횟수를 변경할 수 있습니다.

또한 배열에 대한 포인터로 초기화할 수 있습니다. 연산자가 과부하되었습니다. 348 과부하가 밝혀졌습니다 :-))

연산자를 사용하면 다음과 같습니다.

a4Arr[ 1 ][ 2 ][ 3 ] += a3Arr[ 1 ][ 0 ]; // В указанное 4-е измерение массива a4Arr добавляется содержимое 3-го измерения массива a3Arr.
그를 위해 만들어진 수학적 연산과 다양한 조작. 색인에는 반대가 있으며 작업에는 훨씬 더 필요합니다.

===========================

배열의 다차원 성은 인터페이스일 뿐입니다. 배열의 배열, 배열에 대한 포인터의 배열, 컨테이너 클래스의 배열, 컨테이너 클래스의 컨테이너 클래스 등을 숨길 수 있습니다.

우리의 경우에는 1차원 배열을 다차원 배열로 해석하는 것만이 적합합니다. 그렇지 않으면 MQL4에서 전송할 수 없습니다.

 
Barbarian :
저것들. C ++에서 1차원 배열을 다시 2차원 배열로 변환하는 클래스를 만들어야 합니까?
필요하지 않습니다. 지수를 계산할 수 있습니다. 매번 배열을 변환하는 것은 매우 비용이 많이 듭니다.