Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 8
1

Странная ошибка при использовании метода erase

14.07.2018, 23:05. Просмотров 417. Ответов 3
Метки нет (Все метки)

И снова здравствуйте. Уже несколько дней пытаюсь решить эту проблему. При шифровке файла, моё расширение прибавляется, но когда я хочу убрать его (при считывании строки нахожу в ней расширение) при попытке его (расширение) удалить методом erase выдается ошибка, о том, что не правильно конвертирован из const chаr* в basic string! Очень прошу помощи. Если у кого - то есть предложение, то прошу не молчать, а написать! Помочь может всё.
Код:
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
#include <Windows.h>
#include <iostream>
#include <clocale>
using namespace std;
 
void crypt(char *in, int szin, const char *key, int szkey) {
    for ( int i = 0; i < szin; i++)
        in[i] ^= key[i % szkey];  
}
 
int main() 
{
setlocale(LC_ALL, "rus");
    char str[] = ("Aj;:1@23#3$/.,*~~JFGHKL|||_-_-_`");
 
    string myString;
    cout<<"Ââåäèòå äèðåêòîðèþ>> ";
    cin >> myString;
    string pref = myString+".rslock";
    
    string rem = myString.erase(".rslock", 6);
    LPCSTR locked = pref.c_str();
    LPCSTR result = myString.c_str();
    LPCSTR unlock = rem.c_str();
    
    HANDLE hFile = CreateFile(result, GENERIC_WRITE | GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
    DWORD dwFileSize = GetFileSize(hFile, 0);
    HANDLE hFileMap = CreateFileMapping(hFile, 0, PAGE_READWRITE, 0, dwFileSize, 0);
    char* cFile = (char*)MapViewOfFile(hFileMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
 
    crypt(cFile, dwFileSize, str, strlen(str));
    UnmapViewOfFile(cFile);
    SetFilePointer(hFile, dwFileSize, 0, 0);
    SetEndOfFile(hFile);
    CloseHandle(hFileMap), CloseHandle(hFile);
 
    
    if (myString.find(".rslock")==std::string::npos)
    {
        Sleep(1000);
        rename(result, locked);
    }
    else
    {
        Sleep(1000);
        rename(result, unlock);
    }
 
    cin.get();cin.get();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2018, 23:05
Ответы с готовыми решениями:

Ошибка при использовании erase для std::vector
Почему в случае удаления элемента из вектора с помощью передачи итератора в erase, который...

Строки: странная ошибка при использовании find (Error C2678)
Здравствуйте! Не могу понять. Делаю ОЧЕНЬ ПРОСТУЮ ВЕЩЬ: создаю две строки и ищу одну строку...

Ошибка "Segmentation fault" при вызове метода erase() контейнера vector
Хочу убрать изолированные вершины в графе. На строке 75 выдает &quot;Segmentation fault&quot;. #include...

Ошибка при использовании метода хорд
// chord method.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot;...

3
TRam_
15.07.2018, 21:03
  #2

Не по теме:

Цитата Сообщение от TheNewPr Посмотреть сообщение
Если у кого - то есть предложение, то прошу не молчать, а написать!
Не выражал бы своё самомнение - получил бы ответ быстрее

0
Software Developer
306 / 222 / 111
Регистрация: 03.05.2017
Сообщений: 1,116
15.07.2018, 22:36 3
Ну вообще-то erase не принимает строк http://www.cplusplus.com/refer... ing/erase/
0
Maniac
Эксперт С++
1450 / 951 / 159
Регистрация: 02.01.2009
Сообщений: 2,814
Записей в блоге: 1
19.07.2018, 16:30 4
TheNewPr, а зачем вам файлы шифровать и расширение файла менять?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2018, 16:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка при использовании метода Ole Add
При использовании метода OLE Add появляется сообщение об ошибке: Project Project1.exe raised...

Ошибка при использовании метода Fill
При попытке использовать fill - вылетает ошибка an unhandled exception of type...

Ошибка при использовании метода Copytodatabase.
Имеем базу в формате ods41 (Lotus R5). База работает под Lotus R5, R6, R7. База локальная и играет...

ошибка при использовании метода Sort - 448
В чем причина ошибки в коде? ActiveSheet.ListObjects(&quot;Таблица_Договоры_бд&quot;).Sort...

Ошибка при использовании метода 1 класса во 2 классе
public LinearLayout LayoutOfScroll; public EditText edBudget; public TextView tvZatrati; public...

Ошибка 502 Bad Gateway при использовании метода long polling
Доброго времени суток! Столкнулся с такой проблемой: на сервере находится телеграм-бот,...


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

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

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