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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 182
#1

запись в файл - C++

16.10.2011, 05:49. Просмотров 335. Ответов 0
Метки нет (Все метки)

у меня есть программа которая использует плагины (20 плагинов) работающих одновременно. каждый плагин имеет свою длл(каждая длл имеет просто другое имя но так они идентичны). плагины пишут в файл при выходе из программы
функции запись храняться в длл.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    char name[20] = "C:\\fc\\name.txt";
    char tbuf [25];//.
    char buf [1];
    int fpointer;
    DWORD err;//.
    DWORD fcount;
 
            buf[0] = flag[0];
            HANDLE hfile1 = CreateFileA(name, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
            fpointer = index1;
            SetFilePointer(hfile1, fpointer, NULL, FILE_BEGIN);
            WriteFile(hfile1, buf, 1, &fcount, NULL);
            CloseHandle(hfile1);
            buf[0] = struc.var;
            HANDLE hfile2 = CreateFileA(name, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
            fpointer = index2;
            SetFilePointer(hfile2, fpointer, NULL, FILE_BEGIN);
            WriteFile(hfile1, buf, 1, &fcount, NULL);
            CloseHandle(hfile1);
переменные struc.var и переменная массива flag[0] int-вые первая хранится в длл. вторая передается из плагина.
проблема в том что иногда при записи получаю значение 0ССh (hex) хотя все инициализирую в начале нулями а в работе таких данных нет.
потом понял что это может быть из-за одновременного обращения к файлу плагинов. переделал для каждой длл свой файл.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    char name1 [20] = "C:\\fc\\dll1temp.txt";
    char tbuf [25];//.
    char buf [1];
    int fpointer;
    DWORD err;//.
    DWORD fcount;
            buf[0] = flaglossd[0];
            HANDLE hfile1 = CreateFileA(name1, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
            fpointer = index;
            SetFilePointer(hfile1, fpointer, NULL, FILE_BEGIN);
            WriteFile(hfile1, buf, 1, &fcount, NULL);
            CloseHandle(hfile1);
            buf[0] = struc.var;
            HANDLE hfile2 = CreateFileA(name1, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
            fpointer = index2;
            SetFilePointer(hfile2, fpointer, NULL, FILE_BEGIN);
            WriteFile(hfile1, buf, 1, &fcount, NULL);
            CloseHandle(hfile1);
но иногда (но не так часто как с одним файлом) проблема появляется. все равно
пишет 0xCCh.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 05:49     запись в файл
Посмотрите здесь:

C++ запись в файл
Запись в файл C++
Запись в файл C++
Запись в файл C++
C++ Запись в файл
C++ Запись в файл
C++ Запись в файл
Запись в файл C++
запись в файл с++ C++
C++ Запись в файл
C++ Запись в файл
C++ Запись в файл

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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