Обмен данными между двумя советниками, работающими в разных терминалах - страница 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 int nValue); // Логическое значение для записи в файловое отображение.

//|10. Функция открывает файловое отображение и записывает в него число типа CHAR с указанного байта в памяти.  
//| Если файлового отображения нет, то оно создаётся. Функция преобразует число типа INT в CHAR для записи в файловое отображение.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 не получен начальный адрес;  
//| -3 значение в память не записано;  
//| -4 отмена отображение представления файла неудачна.  
//| int FileMappingWriteCharValue(const char *szNameFileMapping, // Имя для проецируемого файла.  
//| const int nMemorySize, // Количество резервируемой памяти для файлового отбражения.  
//| const int nStartByte, // Номер байта от начала выделенной памяти, с которого будут записано число.  
//| const int nValue); // Целое число для записи в файловое отображение.

//|11. Функция открывает файловое отображение и записывает в него число типа SHORT с указанного байта в памяти.  
//| Если файлового отображения нет, то оно создаётся. Функция преобразует число типа INT в SHORT для записи в файловое отображение.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 не получен начальный адрес;  
//| -3 значение в память не записано;  
//| -4 отмена отображение представления файла неудачна.  
//| int FileMappingWriteShortValue(const char *szNameFileMapping, // Имя для проецируемого файла.  
//| const int nMemorySize, // Количество резервируемой памяти для файлового отбражения.  
//| const int nStartByte, // Номер байта от начала выделенной памяти, с которого будут записано число.  
//| const int nValue); // Целое число для записи в файловое отображение.

//|12. Функция открывает файловое отображение и записывает в него число типа INT с указанного байта в памяти.  
//| Если файлового отображения нет, то оно создаётся.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки; |
//| -1 количество данных больше выделенной памяти;  
//| -2 не получен начальный адрес;  
//| -3 значение в память не записано;  
//| -4 отмена отображение представления файла неудачна.  
//| int FileMappingWriteIntValue(const char *szNameFileMapping, // Имя для проецируемого файла.  
//| const int nMemorySize, // Количество резервируемой памяти для файлового отбражения.  
//| const int nStartByte, // Номер байта от начала выделенной памяти, с которого будут записано число.  
//| const int nValue); // Целое число для записи в файловое отображение.

//|13. Функция открывает файловое отображение и записывает в него число типа FLOAT с указанного байта в памяти.  
//| Если файлового отображения нет, то оно создаётся. Функция преобразует число типа DOUBLE в FLOAT для записи в файловое отображение.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 не получен начальный адрес;  
//| -3 значение в память не записано;  
//| -4 отмена отображение представления файла неудачна.  
//| int FileMappingWriteFloatValue(const char *szNameFileMapping, // Имя для проецируемого файла.  
//| const int nMemorySize, // Количество резервируемой памяти для файлового отбражения.  
//| const int nStartByte, // Номер байта от начала выделенной памяти, с которого будут записано число.  
//| const double dValue); // Число двойной точности для записи в файловое отображение.

//|14. Функция открывает файловое отображение и записывает в него число типа DOUBLE с указанного байта в памяти.  
//| Если файлового отображения нет, то оно создаётся.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 не получен начальный адрес;  
//| -3 значение в память не записано;  
//| -4 отмена отображение представления файла неудачна.  
//| int FileMappingWriteDoubleValue(const char *szNameFileMapping, // Имя для проецируемого файла.  
//| const int nMemorySize, // Количество резервируемой памяти для файлового отбражения.  
//| const int nStartByte, // Номер байта от начала выделенной памяти, с которого будут записано число.  
//| const double 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 int nValue); // Логическое значение для записи в файловое отображение.

//|17. Функция записывает в файловое отображение по начальному адресу пространства вызывающего процесса число типа CHAR с указанного байта в памяти.  
//| Функция предназначена для использования в циклах. Функция преобразует число типа INT в CHAR для записи в файловое отображение.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 значение в память не записано.  
//| int FileMappingWriteSimpleCharValue(const char *pcAddress, // Указатель на байт области памяти отображения представления проецируемого файла,  
//| // с которого будет производиться запись данных.  
//| const int nValue); // Логическое значение для записи в файловое отображение.

//|18. Функция записывает в файловое отображение по начальному адресу пространства вызывающего процесса число типа SHORT с указанного байта в памяти.  
//| Функция предназначена для использования в циклах. Функция преобразует число типа INT в SHORT для записи в файловое отображение.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 значение в память не записано.  
//| int FileMappingWriteSimpleShortValue(const char *pcAddress, // Указатель на байт области памяти отображения представления проецируемого файла,  
//| // с которого будет производиться запись данных.  
//| const int nValue); // Логическое значение для записи в файловое отображение.

//|19. Функция записывает в файловое отображение по начальному адресу пространства вызывающего процесса число типа INT с указанного байта в памяти.  
//| Функция предназначена для использования в циклах.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 значение в память не записано.  
//| int FileMappingWriteSimpleIntValue(const char *pcAddress, // Указатель на байт области памяти отображения представления проецируемого файла,  
//| // с которого будет производиться запись данных.  
//| const int nValue); // Целое число для записи в файловое отображение.
 
//|20. Функция записывает в файловое отображение по начальному адресу пространства вызывающего процесса число типа FLOAT с указанного байта в памяти.  
//| Функция преобразует число типа DOUBLE в FLOAT для записи в файловое отображение. Функция предназначена для использования в циклах.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 значение в память не записано.  
//| int FileMappingWriteSimpleFloatValue(const char *pcAddress, // Указатель на байт области памяти отображения представления проецируемого файла,  
//| // с которого будет производиться запись данных.  
//| const double dValue); // Число двойной точности для записи в файловое отображение.

//|21. Функция записывает в файловое отображение по начальному адресу пространства вызывающего процесса число типа DOUBLE с указанного байта в памяти.  
//| Функция предназначена для использования в циклах.  
//| Функция возращает: 1 успешное завершение;  
//| 0 прочие ошибки;  
//| -1 количество данных больше выделенной памяти;  
//| -2 значение в память не записано.  
//| int FileMappingWriteSimpleDoubleValue(const char *pcAddress, // Указатель на байт области памяти отображения представления проецируемого файла,  
//| // с которого будет производиться запись данных.  
//| const double 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 в случае ошибки.  
//| short 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.  
//| double FileMappingReadSimpleFloatValue(const char *pcAddress); // Указатель на байт области памяти отображения представления проецируемого файла,  
//| // с которого будет производиться запись данных.

//|35. Функция открывает файловое отображение и читает из него число типа DOUBLE с указанного байта в памяти.  
//| Функция предназначена для использования в циклах. Функция возращает прочитанное значение или NULL в случае ошибки.  
//| double 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, // Указатель на массив с логическими данными BOOL для записи в файловое отображение.  
//| 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, // Указатель на массив с логическими данными BOOL для записи в файловое отображение.  
//| 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 протестировал. Понял, что надо добавить ещё 16 функций для беззнаковых целых, кроме INT.
На данный момент заголовочный файл выглядит так:
Файлы:
 
Закончил. Теперь 80 функций. Выложил в копилке. Наверно, скоро появиться.
Заголовочный файл теперь такой:
Файлы:
 
Zhunko: Всё-таки, общение через файлы это не тот инструмент. Не по назначению.
Файлы придуманы для длительного хранения информации. Зачем терзать диск? Для общения есть ОЗУ.

Ежели создать диск в ОЗУ (RAMdisk) то и винчестер терзаться не будет и предложение JavaDev приобретает определённый смысл.

А за библиотеку - огромное спасибо !!! просто шедевр !!!

Причина обращения: