VovkaSOL : 반복합니다. 답을 찾을 수 없습니다. 다음 구성을 사용해야 합니다. void RAssignStringVector(int rhandle, string variable, string &vector[], int size); 컴파일할 때 'vector' 오류가 발생합니다 - 가져오기 함수 mt4R.mqh에 대한 잘못된 매개변수, 문자열 배열에 대한 포인터를 어떻게 전달할 수 있습니까?
도움말은 다음과 같이 말합니다.
가져온 함수 호출
mql5 프로그램 실행 중에 함수를 가져오기 위해 조기 바인딩을 사용합니다. 즉, 프로그램에 가져온 함수에 대한 호출이 있는 경우 프로그램 로드 중에 해당 모듈(ex5 또는 dll)이 로드됩니다. MQL5 라이브러리 및 DLL은 호출 모듈의 스레드에서 실행됩니다.
. . .
매개변수 전달
모든 단순 유형 매개변수는 참조로 전달된다고 명시적으로 명시하지 않는 한 값으로 전달됩니다. 문자열을 전달할 때 복사된 문자열 의 버퍼 주소가 전달됩니다. 문자열이 참조로 전달되면 이 특정 문자열의 버퍼 주소가 복사 없이 DLL에서 가져온 함수에 전달됩니다.
동적 배열, 문자열, 클래스, 기타 복잡한 구조 및 나열된 객체의 정적 또는 동적 배열을 포함하는 구조는 가져온 함수에 매개변수로 전달할 수 없습니다.
배열을 DLL에 전달할 때 데이터 버퍼의 시작 주소는 항상( AS_SERIES 플래그에 관계없이) 전달됩니다. DLL 내부의 함수는 AS_SERIES 플래그에 대해 아무 것도 모르고 전달된 배열은 길이를 알 수 없는 정적 배열입니다. 추가 매개변수를 사용하여 배열의 크기를 지정합니다.
응용 프로그램이 닫히면 고려되고 오류가 수정되었으며 더 이상 응답하지 않습니다(내 의견을 남길 수 있습니까?)? 그러나 예를 들어 응용 프로그램 288749는 닫혔지만 오류는 수정되지 않았습니다. 이 오류는 "Errors , MetaTrader 5 MQL , Closed , Started: 2011.11.16 16:45 , #270068" 요청에서 발생하며 모든 것이 다음 빌드에서 수정되었음을 나타내는 2011.11.21 17:24에 종료되었습니다 .새 주문을 열었습니다. "오류 , MetaTrader 5 MQL , 열림 , 시작됨: 2011.12.11 14:00 , #288749". 새 응용 프로그램을 다시 열어야 합니까?
Konstantin83 : 응용 프로그램이 닫히면 고려되고 오류가 수정되었으며 더 이상 응답하지 않습니다(내 의견을 남길 수 있습니까?)? 그러나 예를 들어 응용 프로그램 288749는 닫혔지만 오류는 수정되지 않았습니다. 이 오류는 "Errors , MetaTrader 5 MQL , Closed , Started: 2011.11.16 16:45 , #270068" 요청에서 발생하며 모든 것이 다음 빌드에서 수정되었음을 나타내는 2011.11.21 17:24에 종료되었습니다 .새 주문을 열었습니다. "오류 , MetaTrader 5 MQL , 열림 , 시작됨: 2011.12.11 14:00 , #288749". 새 응용 프로그램을 다시 열어야 합니까?
어떻게 생각하나요? 공식 발표가 없다면 터미널을 업데이트할 가치가 있습니까?
여기: MetaTrader 5 클라이언트 터미널 빌드의 변경 사항 목록
업데이트할 때까지 여러 번 업데이트하고 싶었습니다.
반복합니다. 답을 찾을 수 없습니다. 다음 구성을 사용해야 합니다. void RAssignStringVector(int rhandle, string variable, string &vector[], int size); 컴파일할 때 'vector' 오류가 발생합니다 - 가져오기 함수 mt4R.mqh에 대한 잘못된 매개변수, 문자열 배열에 대한 포인터를 어떻게 전달할 수 있습니까?
도움말은 다음과 같이 말합니다.
가져온 함수 호출
mql5 프로그램 실행 중에 함수를 가져오기 위해 조기 바인딩을 사용합니다. 즉, 프로그램에 가져온 함수에 대한 호출이 있는 경우 프로그램 로드 중에 해당 모듈(ex5 또는 dll)이 로드됩니다. MQL5 라이브러리 및 DLL은 호출 모듈의 스레드에서 실행됩니다.
. . .
매개변수 전달
모든 단순 유형 매개변수는 참조로 전달된다고 명시적으로 명시하지 않는 한 값으로 전달됩니다. 문자열을 전달할 때 복사된 문자열 의 버퍼 주소가 전달됩니다. 문자열이 참조로 전달되면 이 특정 문자열의 버퍼 주소가 복사 없이 DLL에서 가져온 함수에 전달됩니다.
동적 배열, 문자열, 클래스, 기타 복잡한 구조 및 나열된 객체의 정적 또는 동적 배열을 포함하는 구조는 가져온 함수에 매개변수로 전달할 수 없습니다.
배열을 DLL에 전달할 때 데이터 버퍼의 시작 주소는 항상( AS_SERIES 플래그에 관계없이) 전달됩니다. DLL 내부의 함수는 AS_SERIES 플래그에 대해 아무 것도 모르고 전달된 배열은 길이를 알 수 없는 정적 배열입니다. 추가 매개변수를 사용하여 배열의 크기를 지정합니다.
답변 감사합니다. 문자열을 그대로 전달할 수 없다는 것을 깨달았습니다. 하지만 문자열 sting &vector[]에 대한 포인터를 전달한 다음 이 문자열의 크기를 전달하려고 합니다. 그런데 왜 4k에서 제대로 작동했을까요? 그 다음에?
대신에
찌르기(&벡터)[]
필요
찌르기 벡터
her.human:
Как вы думаете? Стоит ли обновлять терминал если не было официальных анонсов?
здесь: Список изменений в билдах MetaTrader 5 Client Terminal
У меня несколько раз хотел обновиться, пока не обновлял.
어쩌면 MetaQuotes 가 Alexander Elder의 방법을 사용하여 우리를 테스트하고 있습니까? )))
오늘 567 로 업데이트했습니다. 터미널이 다시 시작하고 싶지 않았습니다. 바이러스 백신 모듈이 많이 로드되었습니다. 프로세서가 100% 로드되었습니다. 바이러스 백신을 비활성화할 때까지 터미널을 부팅할 수 없습니다. 재부팅되었습니다. 빌드 567 . )))
---
터미널 개발자에게 질문: 모든 사용자에게 요구하는 이 미고지 빌드 567 은 무엇이며 최소 두 명이 이미 설치되어 있습니까?
응용 프로그램이 닫히면 고려되고 오류가 수정되었으며 더 이상 응답하지 않습니다(내 의견을 남길 수 있습니까?)? 그러나 예를 들어 응용 프로그램 288749는 닫혔지만 오류는 수정되지 않았습니다. 이 오류는 " Errors , MetaTrader 5 MQL , Closed , Started: 2011.11.16 16:45 , #270068 " 요청에서 발생하며 모든 것이 다음 빌드에서 수정되었음을 나타내는 2011.11.21 17:24에 종료되었습니다 . 새 주문을 열었습니다. "오류 , MetaTrader 5 MQL , 열림 , 시작됨: 2011.12.11 14:00 , #288749". 새 응용 프로그램을 다시 열어야 합니까?
어쩌면 MetaQuotes 가 Alexander Elder의 방법을 사용하여 우리를 테스트하고 있습니까? )))
오늘 567 로 업데이트했습니다. 터미널이 다시 시작하고 싶지 않았습니다. 바이러스 백신 모듈이 많이 로드되었습니다. 프로세서가 100% 로드되었습니다. 바이러스 백신을 비활성화할 때까지 터미널을 부팅할 수 없습니다. 재부팅되었습니다. 빌드 567 . )))
---
터미널 개발자에게 질문: 모든 사용자에게 요구하는 이 미고지 빌드 567 은 무엇이며 최소 두 명이 이미 설치되어 있습니까?
어쩌면 MetaQuotes 가 Alexander Elder의 방법을 사용하여 우리를 테스트하고 있습니까? )))
오늘 567 로 업데이트했습니다. 재부팅하고 싶지 않았습니다. 바이러스 백신 모듈이 많이 로드되었습니다. 프로세서가 100% 로드되었습니다. 바이러스 백신을 비활성화할 때까지 터미널을 부팅할 수 없습니다. 재부팅되었습니다. 빌드 567 . )))
---
터미널 개발자에게 질문: 모든 사용자에게 요구하는 이 미발표 빌드 567 은 무엇이며 그 중 최소 2명은 이미 설치되어 있습니까?
귀하의 요청을 처리 중입니다. 하지만 지원서에 나온 질문에 대한 답변을 볼 수 없습니다.