"10분 안에 MQL5용 DLL 라이브러리를 작성하고 데이터를 교환하는 방법" 기사에 대한 토론 - 페이지 8

 
avoitenko :

DLL 함수 선언

DLL 함수 호출

정확히! 그냥 그랬어요. 고맙습니다!
 

마지막 예에서 dll도 변경되었습니다. 알겠습니다.

나는 그것에 대해 이야기하고있다

 bool ExcelSetTextCell( int X, int Y, uchar & Value[]);
 

실례가 되지 않는다면 저도 알려주세요. dll이 있고 텍스트 값이 전달되며 출력 에서 문자열 유형 의 숫자를 얻습니다.

예를 들면 다음과 같습니다.

 #import "n1.dll"
string fData ( string a1);
#import

....

string znak = fData ( "a" );

// При значении "a" переменная znak будет равна например "172371", далее я значение znak конвертирую в int
// Так всё было в МТ4.

지식이 부족하여 dll을 수정할 수 없습니다. dll로 전송하기 위해 코드를 올바르게 형식화하는 방법과 올바르게 가져오는 방법을 알려주세요 . 그리고 이제 MT5에서 내 dll이 작동하지 않습니다.

미리 감사드립니다.

Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
 
Killa :

실례가 되지 않는다면 저에게도 알려주세요. dll이 있고 텍스트 값이 전달되며 출력 에서 문자열 유형 의 숫자를 얻습니다.

지식이 부족하여 dll을 수정할 수 없습니다. dll로 전송하기 위해 코드를 올바르게 형식화하는 방법과 올바르게 가져오는 방법을 알려주세요 . 그리고 이제 MT5에서 내 dll이 작동하지 않습니다.

미리 감사드립니다.

DLL에서 문자열을 반환하는 작업을 다시 확인하고 x64에서 버그를 발견했습니다(여러 최적화 도입 후 나타남). 수정 사항은 다음 빌드에 포함됩니다.

x64를 실행 중인 경우 빌드가 릴리스될 때까지 기다리십시오.

내가 추가할 수 있는 유일한 것은 MQL5가 유니코드 문자열과 함께 작동한다는 것입니다.

 
즉, dll을 다시 작성해야 합니다...
 
나는 dll의 힘을 느끼고 싶습니다. 그들은 그것에 대해 너무 많이 이야기합니다. 문제는 어디서부터 시작해야 하는지 간단합니다. 무엇을 다운로드할지, 무엇을 읽을지, 어떤 포럼에 갈지, 포인트 5-6 plz. 이 삶의 많은 것이 기본 펜델에 달려 있습니다.
 

기사 주셔서 감사합니다. 사용했습니다.

경로에 대한 훌륭한 힌트. 하지만 !! VS2010에서 DLL 경로를 올바르게 설정하는 방법을 알아내는 데 10분이 걸렸습니다.

나를 위해 그것은 다음과 같이 밝혀졌습니다.

C:\Users\pp\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries

MetaEditor에서 경로를 복사하는 것이 좋습니다.

또는 자신의 환경을 지정하십시오(확인하지 않음).

그러나 멀티스레딩은 어떻습니까?

 

기사 주셔서 감사합니다. 나는 그것을 완전히 반복했지만 구현하는 동안 내가 겪었던 것에 대해 몇 마디 말하고 싶습니다. 명확히 하고 싶은 것(VS2010 + MT5(32비트) 빌드 756 + Win 7 Ultimate x64 사용):

  1. x64 플랫폼에서 연결을 시도한 방법에 관계없이 작동하지 않았습니다. 내가 이해한 대로, 생성된 DLL 이 표준 Windows 라이브러리 에 내재적으로 종속되어 어떤 이유로 x86 라이브러리를 로드했기 때문입니다. MQL5 문제는 아니지만 언급할 가치가 있습니다. MT5 32비트를 설치하여 이 상황에서 벗어났습니다. 이것은 "설치 프로그램 폴더"\mt5setup.exe /32 명령줄을 사용하여 수행됩니다. 따라서 DLL x86을 사용합니다. 따라서 최소한 초기 단계에서는 x86만 사용하는 것이 좋습니다.
  2. MT5는 어떤 방식으로든 플러그인 DLL을 찾을 수 없습니다. 기사에서는 DLL을 터미널의 Libraries 폴더에 배치한다고 나와 있지만 터미널은 여전히 그것을 볼 수 없습니다. 솔루션은 다음과 같습니다. DLL이 위치할 위치는 중요하지 않습니다. 중요한 것은 이 위치가 시스템 환경 변수에 등록된다는 것입니다. 이 작업을 수행하는 방법은 Google에 도움이 됩니다.

그렇지 않으면 매우 나쁘지 않은 기사 ... 존경합니다!

 

예제는 64비트 MT5에서 작동하지 않습니다. 터미널은 이것이 32비트 DLL임을 구독 취소하고 포함하지 않습니다. 그러나 Win32에서는(이 예제와 Delphi와 같은 다른 모든 예제에서와 같이) 동일한 DLL이 모두 32비트입니다. 이전 포스트와 마찬가지로 64비트 버전의 터미널을 제거하고 32비트 버전을 설치해야 합니다. 64비트 버전은 강제로 설치되기 때문에 하는 방법도 알아야 합니다. MT5 64비트는 일반적으로 데드 터미널이며 출시된 이유는 명확하지 않습니다. 개발자 여러분, 가능하면 MT5 64비트, 32비트 DLL에 연결할 수 있도록 해주십시오.

기술적으로 불가능하거나 어려운 경우 이 버전이 32비트 DLL에서 작동하지 않는다는 함정에 대해 작성하십시오. 그렇지 않으면 사용자가 고통을 겪고 무엇이 잘못되었는지 이해할 수 없습니다. 그리고 Libraries 폴더가 터미널 자체의 디렉토리에 없다는 것을 공개적으로 작성하십시오. 그러나 누가 어디에 있는지 알고 경험 없이는 찾지 못할 것입니다. 그건 그렇고, 모든 지표와 전문가는이 비밀 장소에 있으므로 MT5를 설치 한 후에는 잊어 버릴 수 있습니다.이 모든 것이 숨겨진 폴더 C:\Users\pp\AppData\Roaming에 있다는 것을 모르는 경우 ... . 그리고 나서 사용자는 자신이 정상적으로 작성된 프로그램 을 설치하고 있다고 생각하는데 이것은 사기입니다.

 

기술 수준을 향상시켜야 합니다.

64비트 프로그램의 경우 64비트 라이브러리가 필요하며 합리적인 프레임워크 내에서 32비트 라이브러리를 연결할 방법이 없습니다. 32비트 버전을 설치하려면 설치 프로그램을 /32 스위치로 실행해야 합니다.

이 기사를 다시 작성하고 MetaEditor와 MT4 및 MT5 플랫폼에서 오랫동안 구현된 멋진 것들을 추가할 것입니다. 많은 개발자가 새로운 기능을 인식하지 못합니다.