Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
#1

Fatility Fail. ini файлы и 0xc0000005 - C++

02.06.2014, 15:28. Просмотров 250. Ответов 4
Метки нет (Все метки)

И снова здрасте!
При вводе Логина (Не говоря уже о пароле) выдает ошибку
""""Необработанное исключение в "0x00011e94" в "iniFile.exe": 0xC0000005: Нарушение прав доступа при записи "0x00015350".""""
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
#include <Windows.h>
#include <iostream>
 
using namespace std;
 
char *IniRead(char *filename, char *section, char *key);
bool IniWrite(char *filename, char *section, char *key, char *data);
 
int main(int argc, char *argv[])
{
    setlocale( LC_ALL,"Russian" );
    char *login_in = "Логин";
    char *pass_in = "Пароль";
    char *login_data = new char[512];
 
    cout << "Создание InI Файла." << endl;
    cout << "Введите логин: ";
 
    cin >> login_in;
 
    IniWrite("D:\\ZFP\\SLs.ini", "All", "Login", login_in);
 
    cout << endl << "Введите пароль: ";
 
    cin >> pass_in;
 
    IniWrite("D:\\ZFP\\SLs.ini", "All", "Password", pass_in);
 
    system("pause");
    return 0;
}
 
char *IniRead(char *filename, char *section, char *key){
    char *out = new char[512];
    GetPrivateProfileString(
        (LPCSTR)section, 
        (LPCSTR)key,
        NULL, 
        out,
        200, 
        (LPCSTR)filename
    );
    return out;
} 
 
bool IniWrite(char *filename, char *section, char *key, char *data){
    return WritePrivateProfileString(
                                (LPCSTR)section,
                                (LPCSTR)key,
                                (LPCSTR)data,
                                (LPCSTR)filename
    );
 
}
Warning'и:
warning C4800: BOOL: принудительно задано логическое значение "true" или "false" (предупреждение о производительности) 52
Предупреждение warning LNK4075: не учитывается "/EDITANDCONTINUE" из-за спецификации "/INCREMENTAL:NO" C:\Users\Виталий\documents\visual studio 2010\Projects\iniFile\iniFile\main.obj
(Второе отключил из-за ошибки в COFF)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 15:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Fatility Fail. ini файлы и 0xc0000005 (C++):

Variadic templates fail - C++
Здравствуйте. У меня проблема, нужно реализовать в проекте функционал, который будет использовать шаблоны с переменным количеством...

Почему ifstream fail() - C++
Вот код: void Program::loadInfo() { char* path = Util::getPath(); strncat(path, &quot;\\Data.txt&quot;, 12); ...

fail sort za 0.5 sek 100000 - C++
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; struct el { int val; ...

не работает класс в разных Source fail'ах - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &quot;vvodit.h&quot; using namespace std; int main() { vvodit a; ...

Некорректная работа cin.fail() при вводе смешанных данных - C++
Дарова, у меня есть код, где присутствует проверка на ввод неправильных данных(в моем случае всяких букв), но работает она не так, как мне...

exception : 0xC0000005: Access Violation - C++
Разработка идет по windows mobile 6. Возникла необходимость в определенном случае менять данные в памяти по адресу 0x02020000 cо смещение...

4
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
02.06.2014, 15:52 #2
login_in - это указатель, который может указывать на область памяти, которая доступна только для чтения.
Можно так: login_in[64] = "lduhvuhg";
0
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
02.06.2014, 15:58  [ТС] #3
А что тогда указывать? Как записывать тогда?
0
zss
Модератор
Эксперт С++
6569 / 6131 / 2021
Регистрация: 18.12.2011
Сообщений: 15,983
Завершенные тесты: 1
02.06.2014, 16:03 #4
Цитата Сообщение от Natsu_Zirok Посмотреть сообщение
Как записывать тогда?
C++
1
2
3
4
5
6
7
8
char login_in[256] = "Логин";
    char pass_in[256]= "Пароль";
    char login_data[512];
 
    cout << "Создание InI Файла." << endl;
    cout << "Введите логин: ";
 
    cin >> login_in;
0
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
02.06.2014, 16:07  [ТС] #5
Цитата Сообщение от castaway Посмотреть сообщение
login_in - это указатель, который может указывать на область памяти, которая доступна только для чтения.
Можно так: login_in[64] = "lduhvuhg";
Понял. Но вот что я получил после ввода пароля и закрытия программы "Run-Time Check Failure #2 - Stack around the variable 'pass_in' was corrupted."
0
02.06.2014, 16:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 16:07
Привет! Вот еще темы с ответами:

GetModuleFileNameW Необработанное исключение 0xC0000005: - C++
Здравствуйте. Суть проблемы: Программа использует ANSI и UNICODE библиотеки. В функцию передаётся имя файла в ANSI. C помощью...

0xC0000005: Access violation writing location - C++
Пытаюсь запустить стороннее приложение таким кодом: PROCESS_INFORMATION P_I; STARTUPINFO S_I; ZeroMemory(&amp;S_I, sizeof(S_I)); ...

0xC0000005 или что делать дальше - C++
Достался по наследству СТАРЫЙ код, смесь С и С++, перенес его на VS 2008. При запуске в режиме отладки возникает собственно ошибка,...

0xC0000005: Access violation writing location 0xFDFDFE11 - C++
ошибка, вылетает после запуска программы. Exception thrown at 0x013E1C0A in массивы.exe: 0xC0000005: Access violation writing location...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.