누군가에게 유용할 수 있습니다:
또는 RAM 디스크를 만들어 거기에 파일을 저장할 수 있습니다. 램 디스크는 컴퓨터의 RAM에 있는 가상 디스크입니다.
이러한 소프트웨어를 사용하여 램 디스크를 만듭니다( http://ramdisk.nm.ru/ramdiskent-rus.htm).
dll 없이도 사용할 수 있도록 모든 것을 MQL로 작성할 수 있으면 좋겠어요.
고마워요 Alex, 멋진 기능입니다.
이 모든 것이 MQL에서 구현되어 dll 없이 사용할 수 있다면 좋을 것입니다.
안타깝게도 전체 문제는 하나의 단일 함수인 MapViewOfFile에 있습니다. 이 함수는 포인터를 반환하므로 MQL에서 직접 사용할 수 없고 배열에 대한 포인터를 가져올 수 없습니다.
다른 모든 함수 (4 개만 있습니다 -CreateFileMapping, OpenFileMapping, UnmapViewOfFile, CloseHandle)를 호출 할 수 있습니다.
하지만이 MapViewOfFile 만 매핑을 직접 사용하여 MQL에서 완전한 기능을 갖춘 작업을 만들 수있는 기회를 제공하지 않았습니다. 그리고 유감스럽게도 자체 작성된 DLL없이 정말하고 싶었습니다.
안타깝게도 전체 문제는 하나의 단일 함수인 MapViewOfFile에 있습니다. 이 함수는 포인터를 반환하므로 MQL에서 직접 사용할 수 없고 배열에 포인터를 가져올 수 없습니다.
다른 모든 함수 (4 개만 있음-CreateFileMapping, OpenFileMapping, UnmapViewOfFile, CloseHandle)를 호출 할 수 있습니다.
하지만이 MapViewOfFile 만 매핑을 사용하여 MQL에서 직접 완전한 기능을 갖춘 작업을 만들 수있는 기회를 제공하지 않았습니다. 그리고 유감스럽게도 저도 자체 작성한 DLL없이 정말하고 싶었습니다.
사실 당신이 아니라 MQ 개발자에게 보내는 메시지 였고 문제는 오래되었고 그 해결책은 분명히 수요가 많습니다.
ZY 비슷한 목적으로 이벤트를 통해 배열에 포인터를 전달하는 함수를 작성했지만 (그러나 하나의 MT 내부에서) dll의 함수는 한 줄 이었지만 dll 없이는 작동하지 않았습니다.
사실 MQ 개발자에게 보내는 메시지로, 오래된 문제이고 해결책이 분명히 필요한 상황입니다.
네, 필요한 것은 필요한 것이죠.
변환기 함수를 만들어 본 적이 있나요?
예를 들어 어떤 dll 함수는 포인터를 반환하므로 int(4)가 있습니다. 대부분의 경우 어떤 구조체에 대한 포인터가 될 것입니다.
다음 작업은 이 구조체에서 데이터를 가져오는 것입니다. 우리는 구조체의 크기를 알고 있으므로 먼저 이 포인터를 문자 배열에 대한 포인터로 변환할 수 있습니다.
이 재 할당을 수행하는 방법은 무엇입니까? 속임수를 쓰는 방법? 아마도 포인터를 전달하는 중간 dll 함수를 통해이 문자 배열을 반환 할 수 있습니까?
음,이 문자 배열은 단순 = 우리 구조로 전송합니다.
다음은 dll에서 이러한 함수의 변형입니다.
void Convert(char *_in, char *_out) { _out=_in; }
그리고 그것은 다음과 같이 mql에서 호출됩니다.
// 예: API 함수가 데이터 구조에 대한 포인터를 반환했습니다. int ptr=ФункцияИзАпи(); // 포인터 ДанныеИзАпи struct ДанныеИзАпи { // API의 데이터 구조 16바이트 }; struct refData { char byte[16]; // 동일한 구조의 이미지, 역시 = 16 바이트 }; refData ref; Convert(ptr, ref.byte); // 배열에 대한 포인터를 변환했습니다. ДанныеИзАпи data=ref; // 간단한 복사를 통해 구조의 필드를 채웁니다.
추신
memcpy로 아이디어를 생각해 냈지만 포인터로도 복사합니다. 지금 시도해 봐야 겠어요.
MK에게 유리한 또 하나의 돌입니다.
왜 그렇게 우물쭈물할까요?
그들만의 프로그램이 정말 얼굴을 망칠 수 있을까요?
사실 이것은 당신에 대한 돌이 아니며, 메시지는 MQ 개발자에게 전달되었으며 문제는 오래되었고 그 해결책은 분명히 수요가 있습니다.
대체로 모든 것이 양호하고 문제가 해결되었으며 자체 작성된 DLL을 사용하지 않고 MQL5 용 성경이 성공적으로 만들어지고 테스트되었습니다.
나는 이미 출판을 위해 그것을 보냈습니다 :)
메모리 매핑:
DLL(VC++ 2010 프로젝트)을 사용하여 메모리 매핑과 함께 작동합니다.
Author: ---