//|22.该函数将一个字符串从内存中的指定字节写到调用进程的初始空间地址的文件映射中。 //|该函数打算在循环中使用。 //| 该函数返回:1成功完成; //| 0其他错误; //| -1数据超过分配的内存; //| -2没有数值被写入内存。 //| int FileMappingWriteSimpleString(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| const char *szString); // 一个要写到文件映射的字符串。
//|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, //name for the file being projected. //| const int nMemorySize, //Number of reserved memory for file mapping. //| const int nStartByte); // 从分配的内存开始的字节数,数字将从这里被读取。
//|43.该函数将一个带有BOOL类型数据的数组从内存中的指定字节写入由调用进程的初始地址空间映射的文件中。 //|该函数打算在循环中使用。该函数将INT数组数据转换为BOOL,以便写到文件映射中。 //| 该函数返回:1成功完成; //| 0其他错误; //| -1要写的单元数超过阵列大小; //| -2数据数超过分配的内存; //| -3阵列没有写入内存。 //| int FileMappingWriteSimpleBoolArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| const int *aiArray, // 指向将写入文件映射的逻辑BOOL数据阵列的指针。 //| const int nSizeBuffer); // 阵列大小。
//|44.该函数从内存中的指定字节向调用进程的初始空间地址映射的文件写入一个带有BOOL类型数据的数组。 //|该函数打算在循环中使用。该函数将INT数组数据转换为CHAR格式,以便写到文件映射中。 //| 该函数返回:1成功完成; //| 0其他错误; //| -1要写的单元数超过阵列大小; //| -2数据数超过分配的内存; //| -3阵列没有写入内存。 //| int FileMappingWriteSimpleCharArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| const int *aiArray, // 指向将写入文件映射的CHAR型数据的数组的指针。 //| const int nSizeBuffer); // 阵列大小。
//|45.该函数将一个带有BOOL类型数据的数组从内存中的指定字节写入由调用进程的初始空间地址映射的文件中。 //|该函数打算在循环中使用。该函数将INT数组数据转换为SHORT,以便写到文件映射中。 //| 该函数返回:1成功完成; //| 0其他错误; //| -1要写的单元数超过数组大小; //| -2数据数超过分配的内存; //| -3数组没有写到内存。 //| int FileMappingWriteSimpleShortArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| const int *aiArray, // 指向数组的指针,数组中的数据为SHORT类型,将被写入文件映射中。 //| const int nSizeBuffer); // 阵列大小。
//|46.该函数将一个带有INT类型数据的数组从内存中的指定字节写入调用进程空间初始地址的文件映射中。 | //|该函数旨在用于循环中。 //|函数返回:1成功完成; //|0其他错误; //|-1要写的单元数超过数组大小; //|-2数据数超过分配的内存; //|-3数组没有写到内存。 //| int FileMappingWriteSimpleIntArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| const int *aiArray, // 指向将写入文件映射的INT类型数据的数组的指针。 //| const int nSizeBuffer); // 阵列大小。
//|47.该函数从内存中指定的字节开始,通过调用进程空间的初始地址向文件映射写入一个带有FLOAT类型数据的数组。 //|该函数打算在循环中使用。该函数将DOUBLE数组数据转换为FLOAT,以便写到文件映射中。 //|函数返回:1成功完成; //|0其他错误; //|-1要写的单元数超过数组大小; //|-2数据数超过分配的内存; //|-3没有数组被写到内存。 //| int FileMappingWriteSimpleFloatArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| const double *adArray, // 指向数组的指针,数组中的数据为FLOAT类型,将被写入文件映射中。 //| const int nSizeBuffer); // 阵列大小。
//|48.该函数将一个带有DOUBLE类型数据的数组从内存中的指定字节写到由调用进程的初始空间地址映射的文件。 //|该函数打算在循环中使用。 //| 该函数返回:1成功完成; //| 0其他错误; //| -1要写的单元数超过阵列大小; //| -2数据数超过分配的内存; //| -3阵列没有写入内存。 //| int FileMappingWriteSimpleDoubleArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| 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); // 阵列大小。
//|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, //| pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| double *adArray, // 指向数组的指针,用于从文件映射中读取 FLOAT 类型的数据。 //| const int nSizeBuffer); // 阵列大小。
//|60.该函数从调用进程的初始空间地址映射的文件中读取DOUBLE类型的数据,并从内存中指定的字节进入数组。 //|该函数打算在循环中使用。 //|函数返回:1成功完成; //|0其他错误; //|-1数据超过分配的内存; //|-2接收缓冲区的大小不够; //|-3内存中的信息没有读出。 //| int FileMappingReadSimpleDoubleArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation, //| / from which the data will be written. //| double *adArray, // 指向数组的指针,用于从文件中读取DOUBLE类型的数据映射到它。 //| const int nSizeBuffer); // 阵列大小。
Zhunko>>: Это не исходник, и не DLL. Это офрмленный заголовок исходника DLL, на который потратил больше недели. Написание класса для маппинга заняло неделю. В основном на продумывание структурированности. А само писание 60 функций заняло 60 минут. Там в каждой функции по паре строчек.
Zhunko: Всё-таки, общение через файлы это не тот инструмент. Не по назначению. Файлы придуманы для длительного хранения информации. Зачем терзать диск? Для общения есть ОЗУ.
В личке
谢谢你。
而写60个函数需要60分钟。每个函数中都有几行。
//|一般功能。
//| 1.该函数通过用户文件描述符和/或文件映射名称创建或打开一个文件映射,并有可能|
//|初步改变分配给它的内存大小。如果不存在文件映射,就会创建一个文件映射。
该//|函数如果成功返回文件映射系统描述符,否则为空。
//| HANDLE FileMappingCreate(const int hFileUser, // /user file system descriptor.
//| const char *szNameFileMapping, //投影文件的名称。
//| const const int nBytes); // 为文件映射保留的内存量。
//| 2.该函数打开文件的映射。如果成功,该函数返回一个文件映射系统描述符,否则为空。
//| 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.该函数通过用户的文件描述符和/或文件映射名称创建一个文件映射,并能事先改变为其分配的内存
//|大小,并将投射的文件表示映射到调用进程的地址空间。
如果成功,函数//|返回一个指向映射内存区域第一个字节的指针,否则为空。
//| char *FileMappingCreateViewOfFile(const int hFileUser, //用户文件的系统描述符。
//| const char *szNameFileMapping, //投影文件的名称。
//| const const int nBytes); // 为文件映射保留的内存量。
//| 6.该函数通过文件名打开文件映射,并将投影文件的表示映射到调用进程的地址空间。
//| 如果成功,该函数返回一个指向投影文件表示法的映射内存区域的第一个字节的指针,否则为空。
//| 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); // 一个整数,写到文件映射中。
//|该函数将一个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, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| 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, //name for the file being projected.
//| const int nMemorySize, //Number of reserved memory for file mapping.
//| 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, //name for file mapping.
//| 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, //Number of reserved memory for file mapping.
//| const int nStartByte, // 从分配的内存开始的字节数,数组将从这里写入。
//| const int *aiArray, // 指向数组的指针,数组中的数据为SHORT类型,将被写入文件映射中。
//| const int nSizeBuffer); // 阵列大小。
如果//|没有文件映射,就会创建。
//| 该函数返回: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, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| const int *aiArray, // 指向将写入文件映射的逻辑BOOL数据阵列的指针。
//| const int nSizeBuffer); // 阵列大小。
//|44.该函数从内存中的指定字节向调用进程的初始空间地址映射的文件写入一个带有BOOL类型数据的数组。
//|该函数打算在循环中使用。该函数将INT数组数据转换为CHAR格式,以便写到文件映射中。
//| 该函数返回:1成功完成;
//| 0其他错误;
//| -1要写的单元数超过阵列大小;
//| -2数据数超过分配的内存;
//| -3阵列没有写入内存。
//| int FileMappingWriteSimpleCharArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| const int *aiArray, // 指向将写入文件映射的CHAR型数据的数组的指针。
//| const int nSizeBuffer); // 阵列大小。
//|45.该函数将一个带有BOOL类型数据的数组从内存中的指定字节写入由调用进程的初始空间地址映射的文件中。
//|该函数打算在循环中使用。该函数将INT数组数据转换为SHORT,以便写到文件映射中。
//| 该函数返回:1成功完成;
//| 0其他错误;
//| -1要写的单元数超过数组大小;
//| -2数据数超过分配的内存;
//| -3数组没有写到内存。
//| int FileMappingWriteSimpleShortArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| const int *aiArray, // 指向数组的指针,数组中的数据为SHORT类型,将被写入文件映射中。
//| const int nSizeBuffer); // 阵列大小。
//|46.该函数将一个带有INT类型数据的数组从内存中的指定字节写入调用进程空间初始地址的文件映射中。 |
//|该函数旨在用于循环中。
//|函数返回:1成功完成;
//|0其他错误;
//|-1要写的单元数超过数组大小;
//|-2数据数超过分配的内存;
//|-3数组没有写到内存。
//| int FileMappingWriteSimpleIntArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| const int *aiArray, // 指向将写入文件映射的INT类型数据的数组的指针。
//| const int nSizeBuffer); // 阵列大小。
//|47.该函数从内存中指定的字节开始,通过调用进程空间的初始地址向文件映射写入一个带有FLOAT类型数据的数组。
//|该函数打算在循环中使用。该函数将DOUBLE数组数据转换为FLOAT,以便写到文件映射中。
//|函数返回:1成功完成;
//|0其他错误;
//|-1要写的单元数超过数组大小;
//|-2数据数超过分配的内存;
//|-3没有数组被写到内存。
//| int FileMappingWriteSimpleFloatArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| const double *adArray, // 指向数组的指针,数组中的数据为FLOAT类型,将被写入文件映射中。
//| const int nSizeBuffer); // 阵列大小。
//|48.该函数将一个带有DOUBLE类型数据的数组从内存中的指定字节写到由调用进程的初始空间地址映射的文件。
//|该函数打算在循环中使用。
//| 该函数返回:1成功完成;
//| 0其他错误;
//| -1要写的单元数超过阵列大小;
//| -2数据数超过分配的内存;
//| -3阵列没有写入内存。
//| int FileMappingWriteSimpleDoubleArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| 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); // 阵列大小。
如果//|没有文件映射,就会创建。
//| 该函数返回: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, //| pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| double *adArray, // 指向数组的指针,用于从文件映射中读取 FLOAT 类型的数据。
//| const int nSizeBuffer); // 阵列大小。
//|60.该函数从调用进程的初始空间地址映射的文件中读取DOUBLE类型的数据,并从内存中指定的字节进入数组。
//|该函数打算在循环中使用。
//|函数返回:1成功完成;
//|0其他错误;
//|-1数据超过分配的内存;
//|-2接收缓冲区的大小不够;
//|-3内存中的信息没有读出。
//| int FileMappingReadSimpleDoubleArray(const char *pcAddress, // pointer to the byte of the memory area of the projected file representation,
//| / from which the data will be written.
//| double *adArray, // 指向数组的指针,用于从文件中读取DOUBLE类型的数据映射到它。
//| const int nSizeBuffer); // 阵列大小。
Это не исходник, и не DLL. Это офрмленный заголовок исходника DLL, на который потратил больше недели. Написание класса для маппинга заняло неделю. В основном на продумывание структурированности.
А само писание 60 функций заняло 60 минут. Там в каждой функции по паре строчек.
Очень приятная библиотечка. А файлами готовыми Вы не можете поделиться? Или это подразумевает оплату?
还没有完成。一切都在进行中。我正在纠正描述中的错误和编辑函数名称,它们对MQL4来说太长了。
测试是一个漫长的过程。这个库是为了与我的工具箱一起使用,因此它是受保护的。我不会给你源代码。
如果你愿意,你可以租用它。:-))
但是,毕竟你所布置的最有价值的东西。这种描述比源代码更重要。
目前,头文件看起来是这样的。
现在的头文件是这样的。
Файлы придуманы для длительного хранения информации. Зачем терзать диск? Для общения есть ОЗУ.
如果你在RAM中创建一个磁盘(RAMdisk),那么硬盘就不会受到影响,提供JavaDev有一定的意义。
对于图书馆--非常感谢!!!只是一个杰作!!!。