서로 다른 터미널에서 작동하는 두 개의 Expert Advisor 간의 데이터 교환 - 페이지 8

 
zhuki >> :

오후에

고맙습니다.

 
소스가 아니며 DLL도 아닙니다. 이것은 내가 일주일 넘게 사용한 프레임이 있는 DLL 소스 헤더입니다. 매핑 수업을 작성하는 데 일주일이 걸렸습니다. 기본적으로 구조를 통해 생각합니다.
그리고 60개의 함수를 작성하는 데 60분이 걸렸습니다. 각 함수에는 몇 줄이 있습니다.

//| 일반 기능.

//| 1. 이 함수는 사용자 파일 설명자 및/또는 다음을 사용하여 파일 매핑 이름으로 파일 매핑을 생성하거나 엽니다.
//| 할당된 메모리 크기의 예비 변경. 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 성공하면 시스템 파일 매핑 핸들을 반환하고 그렇지 않으면 NULL을 반환합니다.
//| HANDLE FileMappingCreate(const int hFileUser, // 사용자 파일 시스템 핸들.
//| const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nBytes); // 파일 매핑을 위해 예약된 메모리 양.

//| 2. 이 기능은 파일 디스플레이를 엽니다. 함수는 성공하면 시스템 파일 매핑 핸들을 반환하고 그렇지 않으면 NULL을 반환합니다.
//| HANDLE FileMappingOpen(const char *szNameFileMapping); // 투영된 파일의 이름입니다.

//| 3. 이 기능은 이름으로 파일 표시를 지웁니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류; |
//| -1 시작 주소가 수신되지 않았습니다.
//| -2 메모리가 지워지지 않았습니다.
//| -3 파일 보기 표시 취소에 실패했습니다.
//| int FileMappingClear(const char *szNameFileMapping); // 파일 매핑 이름.

//| 4. 이 함수는 이름으로 파일 표시를 닫습니다. 함수는 성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.
//| bool FileMappingClose(const char *szNameFileMapping); // 파일 매핑 이름.

//| 호출 프로세스의 주소 공간에서 프로젝트된 파일의 표현을 표시하는 액세스를 위한 일반 기능.

//| 5. 이 함수는 사용자 파일 설명자 및/또는 예비 수정 가능성이 있는 파일 매핑 이름으로 파일 매핑을 생성합니다.
//| 할당된 메모리의 크기와 투영된 파일의 표현을 호출 프로세스의 주소 공간에 매핑합니다.
//| 이 함수는 성공하면 투영된 파일 표현 매핑 메모리 영역의 첫 번째 바이트에 대한 포인터를 반환하고 그렇지 않으면 NULL을 반환합니다.
//| char *FileMappingCreateViewOfFile(const int hFileUser, // 사용자 파일 시스템 핸들.
//| const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nBytes); // 파일 매핑을 위해 예약된 메모리 양.

//| 6. 함수는 이름으로 매핑된 파일을 열고 투영된 파일의 표현을 호출 프로세스의 주소 공간에 매핑합니다.
//| 이 함수는 성공하면 투영된 파일 표현 매핑 메모리 영역의 첫 번째 바이트에 대한 포인터를 반환하고 그렇지 않으면 NULL을 반환합니다.
//| char *FileMappingOpenViewOfFile(const char *szNameFileMapping); // 투영된 파일의 이름입니다.

//| 7. 이 함수는 투영된 파일의 표현을 호출 프로세스의 주소 공간에 매핑합니다.
//| 함수는 성공 시 TRUE를, 오류 시 FALSE를 반환합니다.
//| bool FileMappingViewOfFile(const char *pcAddress); // 투영된 파일 표현 매핑 메모리 영역의 첫 번째 바이트에 대한 포인터, 반환됨
//| // 함수 FileMappingCreateViewOfFile(), FileMappingOpenViewOfFile().

//| 8. 함수는 호출 프로세스의 주소 공간으로 투영된 파일의 표현을 취소합니다.
//| 함수는 성공 시 TRUE를, 오류 시 FALSE를 반환합니다.
//| bool FileMappingUnViewOfFile(const char *pcAddress); // 투영된 파일 표현의 매핑 메모리 영역의 첫 번째 바이트에 대한 포인터,
//| // FileMappingCreateViewOfFile(), FileMappingOpenViewOfFile() 함수에 의해 반환됩니다.

//| 파일 표시에 숫자와 문자열을 쓰는 기능.

//| 9. 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 논리적 값 BOOL을 해당 파일에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 파일 매핑에 쓰기 위해 여러 유형의 INT를 BOOL로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양 이 할당된 메모리 보다 큽니다.
//| -2 시작 주소가 수신되지 않았습니다.
//| -3 값이 메모리에 기록되지 않았습니다.
//| -4 파일 보기 표시 취소에 실패했습니다.
//| int FileMappingWriteBoolValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 숫자를 쓸 할당된 메모리의 시작 부분부터 바이트 수.
//| const 정수 n값); // 파일 매핑에 쓸 부울 값입니다.

//|10. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 파일 매핑에 CHAR 번호를 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 파일 매핑에 쓰기 위해 여러 유형의 INT를 CHAR로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 시작 주소가 수신되지 않았습니다.
//| -3 값이 메모리에 기록되지 않았습니다.
//| -4 파일 보기 표시 취소가 실패했습니다.
//| int FileMappingWriteCharValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 숫자를 쓸 할당된 메모리의 시작 부분부터 바이트 수.
//| const 정수 n값); // 파일 매핑에 쓸 정수.

//|11. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 여러 유형의 SHORT를 해당 파일에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 파일 매핑에 쓰기 위해 여러 유형의 INT를 SHORT로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 시작 주소가 수신되지 않았습니다.
//| -3 값이 메모리에 기록되지 않았습니다.
//| -4 파일 보기 표시 취소가 실패했습니다.
//| int FileMappingWriteShortValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 숫자를 쓸 할당된 메모리의 시작 부분부터 바이트 수.
//| const 정수 n값); // 파일 매핑에 쓸 정수.

//|12. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 파일 매핑에 INT 번호를 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류; |
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 시작 주소가 수신되지 않았습니다.
//| -3 값이 메모리에 기록되지 않았습니다.
//| -4 파일 보기 표시 취소에 실패했습니다.
//| int FileMappingWriteIntValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 숫자를 쓸 할당된 메모리의 시작 부분부터 바이트 수.
//| const 정수 n값); // 파일 매핑에 쓸 정수.

//|13. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 파일 매핑에 FLOAT 번호를 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 파일 매핑에 쓰기 위해 DOUBLE 숫자를 FLOAT로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 시작 주소가 수신되지 않았습니다.
//| -3 값이 메모리에 기록되지 않았습니다.
//| -4 파일 보기 표시 취소가 실패했습니다.
//| int FileMappingWriteFloatValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 숫자를 쓸 할당된 메모리의 시작 부분부터 바이트 수.
//| const 이중 dValue); // 파일 매핑에 쓸 배정밀도 숫자입니다.

//|14. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 파일 매핑에 DOUBLE 숫자를 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 시작 주소가 수신되지 않았습니다.
//| -3 값이 메모리에 기록되지 않았습니다.
//| -4 파일 보기 표시 취소가 실패했습니다.
//| int FileMappingWriteDoubleValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 숫자를 쓸 할당된 메모리의 시작 부분부터 바이트 수.
//| const 이중 dValue); // 파일 매핑에 쓸 배정밀도 숫자입니다.

//|15. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 문자열을 해당 파일에 씁니다. 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 문자 수가 문자열의 길이보다 큽니다.
//| -2 문자열의 길이가 할당된 메모리보다 큽니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 값이 메모리에 기록되지 않았습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingWriteString(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 문자열이 쓰여질 할당된 메모리의 시작 부분부터 바이트 수.
//| const char *szString); // 파일 매핑에 쓸 문자열입니다.

//| 호출 프로세스의 주소 공간에서 프로젝트된 파일의 표현을 표시하기 위해 숫자와 문자열을 작성하는 기능.

//|16. 함수는 메모리의 지정된 바이트에서 부울 값 BOOL을 호출 프로세스의 시작 공간 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 파일 매핑에 쓰기 위해 여러 유형의 INT를 BOOL로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 값이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleBoolValue(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const 정수 n값); // 파일 매핑에 쓸 부울 값입니다.

//|17. 함수는 메모리의 지정된 바이트에서 CHAR 번호를 호출 프로세스의 시작 공간 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 파일 매핑에 쓰기 위해 여러 유형의 INT를 CHAR로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 값이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleCharValue(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const 정수 n값); // 파일 매핑에 쓸 부울 값입니다.

//|18. 이 함수는 메모리의 지정된 바이트에서 SHORT 유형의 번호를 호출 프로세스의 시작 공간 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 파일 매핑에 쓰기 위해 여러 유형의 INT를 SHORT로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 값이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleShortValue(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const 정수 n값); // 파일 매핑에 쓸 부울 값입니다.

//|19. 이 함수는 메모리의 지정된 바이트에서 INT 번호를 호출하는 프로세스의 시작 공간 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 값이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleIntValue(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const 정수 n값); // 파일 매핑에 쓸 정수.
 
//|20. 함수는 메모리의 지정된 바이트에서 FLOAT 번호를 호출 프로세스의 시작 공간 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 파일 매핑에 쓰기 위해 DOUBLE 숫자를 FLOAT로 변환합니다. 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 값이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleFloatValue(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const 이중 dValue); // 파일 매핑에 쓸 배정밀도 숫자입니다.

//|21. 함수는 메모리의 지정된 바이트에서 DOUBLE 수를 호출 프로세스의 시작 공간 주소에서 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 값이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleDoubleValue(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const 이중 dValue); // 파일 매핑에 쓸 배정밀도 숫자입니다.

//|22. 함수는 메모리의 지정된 바이트에서 문자열을 호출 프로세스의 시작 공간 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 값이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleString(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const char *szString); // 파일 매핑에 쓸 문자열입니다.

//| 파일 표시에서 숫자와 줄을 읽는 기능.

//|23. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 부울 값 BOOL을 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 함수는 읽은 값을 반환하거나 오류가 발생하면 FALSE를 반환합니다.
//| bool FileMappingReadBoolValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte); // 숫자를 읽을 할당된 메모리의 시작 부분부터 바이트 수.

//|24. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 CHAR 번호를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| char FileMappingReadCharValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte); // 숫자를 읽을 할당된 메모리의 시작 부분부터 바이트 수.

//|25. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 SHORT 번호를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| short FileMappingReadShortValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte); // 숫자를 읽을 할당된 메모리의 시작 부분부터 바이트 수.

//|26. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 INT 번호를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| int FileMappingReadIntValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte); // 숫자를 읽을 할당된 메모리의 시작 부분부터 바이트 수.

//|27. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 FLOAT 번호를 읽습니다. 파일 매핑이 없으면 하나가 생성됩니다.
//| 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다. 이 함수는 FLOAT 번호를 파일 매핑에서 DOUBLE로 변환합니다.
//| double FileMappingReadFloatValue(const char *szNameFileMapping, // 투영된 파일의 이름.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte); // 숫자를 읽을 할당된 메모리의 시작 부분부터 바이트 수.

//|28. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 DOUBLE 수를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| double FileMappingReadDoubleValue(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte); // 숫자를 읽을 할당된 메모리의 시작 부분부터 바이트 수.

//|29. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 문자열을 읽습니다. 파일 매핑이 없으면 하나가 생성됩니다.
//| 이 함수는 문자열의 시작 부분에 대한 포인터를 반환합니다.
//| 오류의 경우 함수는 다음을 반환합니다. "Error_1" 문자열의 길이가 할당된 메모리보다 큽니다.
//| "Error_2" 시작 주소가 수신되지 않았습니다.
//| "Error_3" 메시지를 메모리에서 읽지 못했습니다.
//| "Error_4" 파일 보기 표시 취소에 실패했습니다.
//| char *FileMappingReadString(const char *szNameFileMapping, // 투영된 파일의 이름.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 문자열을 읽을 할당된 메모리의 시작 부분부터 바이트 수.
//| const int nLengthString); // 읽은 문자열의 길이(바이트).

//| 호출 프로세스의 주소 공간에서 프로젝션된 파일 표현을 표시하여 숫자와 라인을 읽는 기능.

//|30. 이 함수는 호출 프로세스의 시작 공간 주소에 있는 파일 맵에서 메모리의 지정된 바이트에서 부울 값 BOOL을 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 함수는 읽은 값을 반환하거나 오류가 발생하면 FALSE를 반환합니다.
//| bool FileMappingReadSimpleBoolValue(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//|31. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 CHAR 번호를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| char FileMappingReadSimpleCharValue(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//|32. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 SHORT 번호를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| 짧은 FileMappingReadSimpleShortValue(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//|33. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 INT 번호를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| int FileMappingReadSimpleIntValue(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//|33. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 INT 번호를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| int FileMappingReadSimpleIntValue(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//|34. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 FLOAT 번호를 읽습니다. 이 함수는 루프에서 사용하기 위한 것입니다.
//| 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다. 이 함수는 FLOAT 번호를 파일 매핑에서 DOUBLE로 변환합니다.
//| 이중 FileMappingReadSimpleFloatValue(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//|35. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 DOUBLE 수를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 오류가 발생하면 읽은 값 또는 NULL을 반환합니다.
//| 이중 FileMappingReadSimpleDoubleValue(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//|36. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 문자열을 읽습니다. 이 함수는 루프에서 사용하기 위한 것입니다.
//| 이 함수는 문자열의 시작 부분에 대한 포인터를 반환합니다.
//| 오류의 경우 함수는 다음을 반환합니다. "Error_1" 문자열의 길이가 할당된 메모리보다 큽니다.
//| "Error_2" 메시지를 메모리에서 읽지 못했습니다.
//| char *FileMappingReadSimpleString(const char *pcAddress); // 투영된 파일의 표현을 표시하는 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.

//| 파일 디스플레이에 어레이를 쓰기 위한 기능.

//|37. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 BOOL 유형 데이터가 있는 배열에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 파일 매핑에 쓰기 위해 INT 배열 데이터를 BOOL로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 배열이 메모리에 기록되지 않았습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingWriteBoolArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| const int *aiArray, // 파일 매핑에 쓸 부울 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|38. 이 함수는 파일 매핑을 열고 메모리에 있는 지정된 바이트의 CHAR 유형 데이터가 있는 배열에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 파일 매핑에 쓰기 위해 INT 배열 데이터를 CHAR로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 배열이 메모리에 기록되지 않았습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingWriteCharArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| const int *aiArray, // 파일 매핑에 쓸 CHAR 유형 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|39. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 SHORT 유형의 데이터가 있는 배열에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 배열 데이터를 파일 매핑에 쓰기 위해 INT에서 SHORT로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 배열이 메모리에 기록되지 않았습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingWriteShortArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| const int *aiArray, // 파일 매핑에 쓸 SHORT 유형 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.
 
//|40. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 INT 유형 데이터가 있는 배열에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양 이 할당된 메모리 보다 큽니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 배열이 메모리에 기록되지 않았습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingWriteIntArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| const int *aiArray, // 파일 매핑에 기록할 INT 유형의 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|41. 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 FLOAT 유형의 데이터가 있는 배열에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 파일 매핑에 쓰기 위해 DOUBLE 배열 데이터를 FLOAT로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 배열이 메모리에 기록되지 않았습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingWriteFloatArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| const double *adArray, // 파일 매핑에 쓸 FLOAT 유형 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|42. 이 함수는 파일 매핑을 열고 메모리에 있는 지정된 바이트의 DOUBLE 유형 데이터가 있는 배열에 씁니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 배열이 메모리에 기록되지 않았습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingWriteDoubleArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| const double *adArray, // 파일 매핑에 쓸 DOUBLE 유형의 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//| 호출 프로세스의 주소 공간에서 투영된 파일의 표현을 매핑하기 위한 배열 쓰기 기능.

//|43. 함수는 메모리의 지정된 바이트에서 호출 프로세스 공간의 시작 주소에 있는 파일 맵에 유형 BOOL 데이터 배열을 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 파일 매핑에 쓰기 위해 INT 배열 데이터를 BOOL로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 배열이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleBoolArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const int *aiArray, // 파일 매핑에 쓸 부울 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|44. 함수는 메모리의 지정된 바이트에서 호출 프로세스 공간의 시작 주소에 있는 파일 맵에 유형 BOOL 데이터 배열을 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 파일 매핑에 쓰기 위해 INT 배열 데이터를 CHAR로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 배열이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleCharArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const int *aiArray, // 파일 매핑에 쓸 CHAR 유형 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|45. 함수는 메모리의 지정된 바이트에서 호출 프로세스 공간의 시작 주소에 있는 파일 맵에 유형 BOOL 데이터 배열을 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 배열 데이터를 파일 매핑에 쓰기 위해 INT에서 SHORT로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 배열이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleShortArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const int *aiArray, // 파일 매핑에 쓸 SHORT 유형 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|46. 함수는 메모리의 지정된 바이트에서 INT 유형의 데이터 배열을 호출하는 프로세스 공간의 시작 주소에 있는 파일 맵에 씁니다. |
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 배열이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleIntArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const int *aiArray, // 파일 매핑에 기록할 INT 유형의 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|47. 함수는 메모리의 지정된 바이트에서 FLOAT 데이터 배열을 호출하는 프로세스 공간의 시작 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 파일 매핑에 쓰기 위해 DOUBLE 배열 데이터를 FLOAT로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 배열이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleFloatArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const double *adArray, // 파일 매핑에 쓸 FLOAT 유형 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|48. 이 함수는 메모리의 지정된 바이트에서 DOUBLE 데이터 배열을 호출하는 프로세스의 시작 공간 주소에 있는 파일 맵에 씁니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 쓸 셀의 수가 배열의 크기보다 큽니다.
//| -2 데이터 양이 할당된 메모리보다 큽니다.
//| -3 배열이 메모리에 기록되지 않았습니다.
//| int FileMappingWriteSimpleDoubleArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| const double *adArray, // 파일 매핑에 쓸 DOUBLE 유형의 데이터가 있는 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//| 파일 디스플레이에서 어레이를 읽는 기능.

//|49. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 배열로 BOOL 데이터를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 메모리에서 메시지를 읽지 못했습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingReadBoolArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| int *aiArray, // 파일 매핑에서 논리적 데이터를 읽을 배열에 대한 포인터 BOOL.
//| const int nSizeBuffer); // 배열 크기.
 
//|50. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 배열로 CHAR 데이터를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양 이 할당된 메모리 보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 메모리에서 메시지를 읽지 못했습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingReadCharArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| int *aiArray, // 파일 매핑에서 CHAR 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|51. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 배열로 SHORT 데이터를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 메모리에서 메시지를 읽지 못했습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingReadShortArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| int *aiArray, // 파일 매핑에서 SHORT 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|52. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 배열로 INT 데이터를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 메모리에서 메시지를 읽지 못했습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingReadIntArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| int *aiArray, // 파일 매핑에서 INT 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|53. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 배열로 FLOAT 데이터를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다. 이 함수는 배열로 읽을 수 있도록 FLOAT 유형의 데이터를 파일 매핑에서 DOUBLE로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 메모리에서 메시지를 읽지 못했습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingReadFloatArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| double *adArray, // 파일 매핑에서 FLOAT 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|54. 이 함수는 파일 매핑을 열고 메모리의 지정된 바이트에서 배열로 DOUBLE 데이터를 읽습니다.
//| 파일 매핑이 없으면 하나가 생성됩니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 시작 주소가 수신되지 않았습니다.
//| -4 메모리에서 메시지를 읽지 못했습니다.
//| -5 매핑되지 않은 파일 보기에 실패했습니다.
//| int FileMappingReadDoubleArray(const char *szNameFileMapping, // 투영된 파일의 이름입니다.
//| const int nMemorySize, // 파일 매핑을 위해 예약된 메모리 양.
//| const int nStartByte, // 배열이 기록될 할당된 메모리의 시작부터 바이트 수.
//| double *adArray, // 파일 매핑에서 DOUBLE 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//| 호출 프로세스의 주소 공간에서 투영된 파일의 표현을 표시할 때 배열을 읽는 기능.

//|55. 이 함수는 호출 프로세스의 시작 공간 주소에 있는 파일 맵에서 메모리의 지정된 바이트에서 배열로 BOOL 데이터를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 메모리에서 메시지를 읽지 못했습니다.
//| int FileMappingReadSimpleBoolArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| int *aiArray, // 파일 매핑에서 논리적 데이터를 읽을 배열에 대한 포인터 BOOL.
//| const int nSizeBuffer); // 배열 크기.

//|56. 이 함수는 호출 프로세스 공간의 시작 주소에 있는 파일 맵에서 메모리의 지정된 바이트에서 배열로 CHAR 유형의 데이터를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 메모리에서 메시지를 읽지 못했습니다.
//| int FileMappingReadSimpleCharArray(const char *pcAddress, // 매핑된 파일 표현의 매핑 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| int *aiArray, // 파일 매핑에서 CHAR 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|57. 이 함수는 호출 프로세스의 시작 공간 주소에 있는 파일 맵에서 메모리의 지정된 바이트에서 배열로 SHORT 데이터를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 메모리에서 메시지를 읽지 못했습니다.
//| int FileMappingReadSimpleShortArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| int *aiArray, // 파일 매핑에서 SHORT 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|58. 이 함수는 호출 프로세스 공간의 시작 주소에 있는 파일 맵에서 메모리의 지정된 바이트에서 배열로 INT 데이터를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 메모리에서 메시지를 읽지 못했습니다.
//| int FileMappingReadSimpleIntArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| int *aiArray, // 파일 매핑에서 INT 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|59. 이 함수는 호출 프로세스 공간의 시작 주소에 있는 파일 맵에서 메모리의 지정된 바이트에서 배열로 FLOAT 데이터를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다. 이 함수는 배열로 읽을 수 있도록 FLOAT 유형의 데이터를 파일 매핑에서 DOUBLE로 변환합니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 메모리에서 메시지를 읽지 못했습니다.
//| int FileMappingReadSimpleFloatArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| double *adArray, // 파일 매핑에서 FLOAT 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.

//|60. 이 함수는 호출 프로세스의 시작 공간 주소에 있는 파일 맵에서 메모리의 지정된 바이트에서 배열로 DOUBLE 데이터를 읽습니다.
//| 이 함수는 루프에서 사용하기 위한 것입니다.
//| 함수는 다음을 반환합니다. 1 성공;
//| 0 다른 오류;
//| -1 데이터 양이 할당된 메모리보다 큽니다.
//| -2 수신 버퍼의 크기가 충분하지 않습니다.
//| -3 메모리에서 메시지를 읽지 못했습니다.
//| int FileMappingReadSimpleDoubleArray(const char *pcAddress, // 매핑된 파일 표현 메모리 영역의 바이트에 대한 포인터,
//| // 데이터를 쓸 위치.
//| double *adArray, // 파일 매핑에서 DOUBLE 유형 데이터를 읽기 위한 배열에 대한 포인터.
//| const int nSizeBuffer); // 배열 크기.
 
Zhunko >> :
Это не исходник, и не DLL. Это офрмленный заголовок исходника DLL, на который потратил больше недели. Написание класса для маппинга заняло неделю. В основном на продумывание структурированности.
А само писание 60 функций заняло 60 минут. Там в каждой функции по паре строчек.
아주 좋은 도서관. 그리고 기성품 파일은 공유할 수 없나요? 아니면 지불을 포함합니까?
 
Andrei01 >> :
Очень приятная библиотечка. А файлами готовыми Вы не можете поделиться? Или это подразумевает оплату?

아직 끝나지 않았습니다. 모든 것이 진행 중입니다. 오류 설명에서 함수 이름을 수정하고 편집합니다. 그렇지 않으면 MQL4에 대해 매우 깁니다.
테스트에는 오랜 시간이 걸립니다. 라이브러리는 내 컴플렉스와 함께 작동하도록 설계되었으므로 보호됩니다. 그리고 이것을 위해 나는 소스 코드를 제공하지 않을 것입니다.
원하시면 렌탈 가능합니다... :-))
그러나 결국 가장 가치있는 것이 배치되었습니다. 이 설명은 소스 코드보다 더 중요합니다.

 
3/4 테스트했습니다. INT를 제외하고 부호 없는 정수에 대해 16개의 함수를 더 추가해야 한다는 것을 깨달았습니다.
현재 헤더 파일은 다음과 같습니다.
파일:
 
완성된. 이제 80개의 기능이 있습니다. 돼지 저금통에 게시. 아마 곧 올 것입니다.
헤더 파일은 이제 다음과 같습니다.
파일:
 
Zhunko : Всё-таки, общение через файлы это не тот инструмент. Не по назначению.
Файлы придуманы для длительного хранения информации. Зачем терзать диск? Для общения есть ОЗУ.

RAM (RAMdisk)에 디스크를 생성하면 하드 드라이브가 고통받지 않으며 JavaDev 제안은 특정 의미를 갖습니다.

그리고 도서관에 감사드립니다! 그냥 걸작!!!

사유: