Форум программистов, компьютерный форум CyberForum.ru

Программа работы с файлом, отображенным в память - C++

Восстановить пароль Регистрация
 
max10messi
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 15
05.04.2014, 20:54     Программа работы с файлом, отображенным в память #1
у меня есть проблемка, дана программа в методичке, нужно откомпилировать, я питался что-то сделать, но выскакует одна ошибка, прошу вашей помощи!!!Пожалуйста!
вот методичка(лаба 4) и скрин ошибки.
Sistemnoe_programmirovanie_-_Laboratornye_rabot.pdf
Программа работы с файлом, отображенным в память
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
//#include "EvryThng.h"
//#include "Everything.h"
 
 
 
#define BUF_SIZE 160
#define rmaxf1 40
#define rmaxf2 10
#include <process.h>
#include <stdarg.h>
#include <string.h>
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <io.h>
#include <stdlib.h>
#include <search.h>
#define WIN32_LEAN_AND_MEAN 
#define NOATOM 
#define NOCLIPBOARD 
#define NOCOMM 
#define NOCTLMGR 
#define NOCOLOR 
#define NODEFERWINDOWPOS 
#define NODESKTOP 
#define NODRAWTEXT 
#define NOEXTAPI 
#define NOGDICAPMASKS 
#define NOHELP 
#define NOICONS 
#define NOTIME 
#define NOIMM 
#define NOKANJI 
#define NOKERNEL 
#define NOKEYSTATES 
#define NOMCX 
#define NOMEMMGR 
#define NOMENUS 
#define NOMETAFILE 
#define NOMSG 
#define NONCMESSAGE 
#define NOPROFILER 
#define NORASTEROPS 
#define NORESOURCE 
#define NOSCROLL 
#define NOSERVICE 
#define NOSHOWWINDOW 
#define NOSOUND 
#define NOSYSCOMMANDS 
#define NOSYSMETRICS 
#define NOSYSPARAMS 
#define NOTEXTMETRIC 
#define NOVIRTUALKEYCODES 
#define NOWH 
#define NOWINDOWSTATION 
#define NOWINMESSAGES 
#define NOWINOFFSETS  
#define NOWINSTYLES  
#define OEMRESOURCE 
#undef UNICODE 
#ifdef UNICODE 
#define _UNICODE 
#endif
#ifndef UNICODE
#undef _UNICODE 
#endif
#define _STATICLIB
#define UTILITY_EXPORTS
#ifdef UTILITY_EXPORTS
#define LIBSPEC _declspec (dllexport)
#else
#define LIBSPEC _declspec (dllimport)
#endif
#define EMPTY _T ("")
#define YES _T ("y")
#define NO _T ("n")
#define CR OxOD
#define LF OxOA
#define TSIZE sizeof (TCHAR) 
/* Пределы и константы. */
#define TYPE_FILE 1   
#define TYPE_DIR 2
#define TYPE_DOT 3
#define MAX_OPTIONS 20 
/* Максимальное кол-во опций командной строки. */
#define MAX_ARG 1000 
/* Максимальное кол-во параметров командной строки. */
#define MAX_COMMAND_LINE MAX_PATH+50 
/* Максимальный размер командной строки. */
/* Функции общего применения. */
LIBSPEC BOOL ConsolePrompt (LPCTSTR, LPTSTR, DWORD, BOOL); 
LIBSPEC BOOL PrintStrings (HANDLE, ...);
LIBSPEC BOOL PrintMsg (HANDLE, LPCTSTR);
LIBSPEC VOID ReportError (LPCTSTR, DWORD, BOOL);
 
 
 
void KCompare (CHAR , CHAR , int);
void KCompare ( CHAR string1[rmaxf1], CHAR string2[rmaxf2], int KEY)
{
    //strcmp
    char tmp[20]; int result;
    result=strncmp(( CHAR*) string1, ( CHAR*) string2, KEY);
    if (result==0)
    { 
        strcpy_s( tmp, "equal to" );
        printf( "Result:\t\tString 1 is %s string 2\n\n", tmp );
    }
    else
    { 
        strcpy_s( tmp, "noequal to" );
        printf( "Result:\t\tString 1 is %s string 2\n\n", tmp );
    }
}
    int _tmain (int argc, LPCTSTR argv []) 
    {
        HANDLE hFile, hFile2, hMap;
        LPVOID  pFile;
        CHAR string1[rmaxf1], string2[rmaxf2]; 
        CHAR Buffer1[BUF_SIZE], Buffer2[BUF_SIZE];
        DWORD FsLow, nf2; 
        int i, j, k, KEY;
        BOOL f2;
        LPCTSTR pF;
        hFile = CreateFile (argv[1], GENERIC_READ, 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        FsLow = GetFileSize (hFile, NULL); 
        printf("Fs=%d\n",(int)FsLow);
        hMap = CreateFileMapping (hFile, NULL, PAGE_READONLY,0, 0, NULL); 
        pFile = MapViewOfFile (hMap, FILE_MAP_READ, 0, 0, 0);
        pF=(LPCTSTR)pFile;
        for (i=0; i< (int)FsLow; i++)
        {
            Buffer1[i]=*pF;
            pF++;
        }
        for (i=0; i< (int)FsLow; i++)
        printf("%c",Buffer1[i]);
        printf("\n");
        hFile2 = CreateFile (argv[2], GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 
        f2=ReadFile(hFile2, Buffer2, BUF_SIZE, &nf2, NULL);
        KEY=GetFileSize (hFile2, NULL); 
        printf("KEY=%d\n", (int)KEY);
        for (i=0; i< (int)KEY; i++)
        printf("%c",Buffer2[i]);
        printf("\n");
        for (i=0; i< (int)KEY; i++)
        string2[i]=Buffer2[i];
        k=0;
        do
        {
            i=k;
            do
        {
        for (j=0; j<(int)KEY;j++)
        {
            string1[j]=Buffer1[j+i];
            printf("%c",string1[j]);
        }
        printf("\n");
        getchar();
        KCompare(string1, string2, (int)KEY);
        i=i+KEY;
        }
        while (i<(int)FsLow-(int)KEY+1);
        k=k+1;
    }
    while (k<(int)FsLow-(int)KEY+1);
    /* Выводим исходный файл. */
    _tprintf(_T("%s"),pFile); 
    UnmapViewOfFile (pFile); 
    CloseHandle (hMap); 
    CloseHandle (hFile);  
    CloseHandle (hFile2);  
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.04.2014, 21:56     Программа работы с файлом, отображенным в память #2
Нужно проверять значения, которые возвращают функции (CreateFile() и пр.).
max10messi
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 15
06.04.2014, 17:57  [ТС]     Программа работы с файлом, отображенным в память #3
И как это сделать, и что оно даст??
Просто может, что-то в коде напутал, бо поразному что-то менял, но ошибка таже((
Может знаешь что нужно в коде поменять?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.04.2014, 19:52     Программа работы с файлом, отображенным в память #4
Цитата Сообщение от max10messi Посмотреть сообщение
И как это сделать,
Читайте документайию по этим функциям.
Цитата Сообщение от max10messi Посмотреть сообщение
и что оно даст??
То, что, может, у вас в коде функции ничего не создают, а вы пытаетесь с этим ничем работать.

Добавлено через 42 секунды
Цитата Сообщение от max10messi Посмотреть сообщение
Может знаешь что нужно в коде поменять?
Этот код - на WinAPI, а тут форум - по С++.
http://www.cyberforum.ru/win-api/
Yandex
Объявления
06.04.2014, 19:52     Программа работы с файлом, отображенным в память
Ответ Создать тему
Опции темы

Текущее время: 17:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru