Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7

Удаляется exe файл при попытке компиляции

18.05.2025, 21:35. Показов 9885. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется написать программу, состоящую из нескольких файлов и использующую то, что в них содержится. В одном из файлов объявляется класс, его свойства и методы, во втором пишется их реализация. После подключения этих файлов к главному и попытке какого-либо взаимодействия между ними (объявления, определения переменной класса, создание вектора объектов этого класса и подобное) удаляется ехе файл и программа закономерно не может отработать. Проблема не в антивирусе, поскольку этот код я писал в файле, экзешник которого добавлен в исключения и который при запуске любой другой программы работает нормально. При чем онлайн компиляторы делают всё исправно. Вот код.

Файл book.h

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
#pragma once
#include <string>
 
using namespace std;
 
class book{
    private:
        string author;
        string title;
        string publisher;
        int year;
        int pages;
    public:
        book();
        book(string inauthor, string intitle, string inpublisher, int inyear, int inpages);
        book(const book& orig);
 
        ~book();
 
        void setauthor(string inauthor);
        void settitle(string intitle);
        void setpublisher(string inpublisher);
        void setyear(int inyear);
        void setpages(int inpages);
 
        string getauthor();
        string gettitle();
        string getpublisher();
        int getyear();
        int getpages();
 
        void show();
};
Файл book.cpp

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
#include "book.h"
#include <iostream>
 
book::book(){
    author="";
    title="";
    publisher="";
    year=0;
    pages=0;
}
 
book::book(string inauthor, string intitle, string inpublisher, int inyear, int inpages){
    author=inauthor;
    title=intitle;
    publisher=inpublisher;
    year=inyear;
    pages=inpages;
}
 
book::book(const book& orig){
    author=orig.author;
    title=orig.title;
    publisher=orig.publisher;
    year=orig.year;
    pages=orig.pages;
}
 
book::~book(){
}
 
void book::setauthor(string inauthor){
    author=inauthor;
}
void book::settitle(string intitle){
    title=intitle;
}
void book::setpublisher(string inpublisher){
    publisher=inpublisher;
}
void book::setyear(int inyear){
    year=inyear;
}
void book::setpages(int inpages){
    pages=inpages;
}
 
string book::getauthor(){
    return author;
}
string book::gettitle(){
    return title;
}
string book::getpublisher(){
    return publisher;
}
int book::getyear(){
    return year;
}
int book::getpages(){
    return pages;
}
 
void book::show(){
    cout<<"Book's author: "<<author<<"\n"
    <<"Book's title: "<<title<<"\n"
    <<"Book's publisher: "<<publisher<<"\n"
    <<"Book's year of release: "<<year<<"\n"
    <<"Number of pages in the book: "<<pages<<"\n \n";
}
Файл main.cpp

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
#include "book.h"
#include <iostream>
#include <vector>
 
void menu(){
    cout<<"    Choose an option \n"
    <<"1: Add new books to the list \n"
    <<"2: Get a list of books of the same author \n"
    <<"3: Get a list of books with less pages than a certain amount \n"
    <<"4: Get a list of books published after a certain year: \n"
    <<"5: Close the program \n \n";
}
 
book donation(int iter){
    string newauthor;
    string newtitle;
    string newpublisher;
    int newyear;
    int newpages;
 
    cout<<iter<<" Enter the book's author: ";
    cin>>newauthor;
    
    cout<<" Enter the book's title: ";
    cin>>newtitle;
 
    cout<<" Enter the book's publisher: ";
    cin>>newpublisher;
 
    cout<<" Enter the book's year of release: ";
    cin>>newyear;
 
    cout<<" Enter the book's number of pages: ";
    cin>>newpages;
 
    book newbook(newauthor, newtitle, newpublisher, newyear, newpages);
 
    return newbook;
}
 
 
int main(){
    int amount;
    string key="";
    string prefauthor;
    int prefpages;
    int prefyear;
    vector <book> library={};
    while (1){
        menu();
        cin>>key;
        if (key=="1"){
            cout<<"\n How many books do you want to add? \n";
            cin>>amount;
            for (int i=0; i<amount; i++){
                book addbook=donation(i+1);
                library.push_back(addbook);
                cout<<"\n";
            }
        }
        else if (key=="2"){
            cout<<"Whose books do you want to see: \n";
            cin>>prefauthor;
            cout<<"\n";
            for (int i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getauthor()==prefauthor){
                    library[i].show();
                }
            }
            system("pause");
        }
        else if (key=="3"){
            cout<<"How many pages are too many for you: \n";
            cin>>prefpages;
            cout<<"\n";
            for (int i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getpages()<=prefpages){
                    library[i].show();
                }
            }
            system("pause");
        }
        else if (key=="4"){
            cout<<"Whose books do you want to see: \n";
            cin>>prefyear;
            cout<<"\n";
            for (int i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getyear()>prefyear){
                    library[i].show();
                }
            }
            system("pause");
        }
        else if (key=="5"){
            break;
        }
        else{
            cout<<"kill yourself \n";
            system("pause");
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2025, 21:35
Ответы с готовыми решениями:

Ошибка компиляции при попытке записать строку в файл
Всем привет!Мне нужно записать в файл c помощью объекта вот таким образом fout &lt;&lt; &quot;@echo off...

Удаляется .exe файл
Здравствуйте, у возникла проблема с программой в плане того что после закрытия программы .exe файл...

Не удаляется аварийно завершенный exe файл
Здравствуйте, подскажите пожалуйста, почему не удаляется ехе файл, если он завершился аварийно....

37
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,413
19.05.2025, 16:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Драгонхартед Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void book::setauthor(string inauthor){
    author=inauthor;
}
void book::settitle(string intitle){
    title=intitle;
}
void book::setpublisher(string inpublisher){
    publisher=inpublisher;
}
void book::setyear(int inyear){
    year=inyear;
}
void book::setpages(int inpages){
    pages=inpages;
}
я бы за такое тоже по рукам бил. это же тупо харасмент...
задай себе вопрос: книга - изменяемый объект? Если тебя вдруг начнут называть Педро или Полиграфом и еще в старперы определят, тебе будет приятно?
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,413
20.05.2025, 08:04
Деструктор не измняет книгу, а уничтожает ее
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,279
20.05.2025, 08:37
Цитата Сообщение от vlisp Посмотреть сообщение
а уничтожает ее
Деструктор не уничтожает объект.
Он тупо делает только то, что в нем написано.
Другое дело, что он вызывается при уничтожении объекта.

Файл book.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
class book{
private:
    string author;
    string title;
    string publisher;
    int year;
    int pages;
public:
    book();
    book(string inauthor, string intitle, string inpublisher, int inyear, int inpages);
    book(const book& orig);
    ~book(){}
    book& operator=(const book& orig);
 
    void show(ostream& os);
 
    string getauthor(){return author;}
    int getpages(){return pages;}
    int getyear(){return year;}
};
ostream& operator<<(ostream& os,book& orig);
Файл book.cpp
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
#include <string>
#include <iostream>
using namespace std;
 
#include "book.h"
 
book::book(){
    author="";
    title="";
    publisher="";
    year=0;
    pages=0;
}
 
book::book(string inauthor, string intitle, string inpublisher, int inyear, int inpages){
    author=inauthor;
    title=intitle;
    publisher=inpublisher;
    year=inyear;
    pages=inpages;
}
 
book::book(const book& orig){
    author=orig.author;
    title=orig.title;
    publisher=orig.publisher;
    year=orig.year;
    pages=orig.pages;
}
book& book::operator=(const book& orig){
    author=orig.author;
    title=orig.title;
    publisher=orig.publisher;
    year=orig.year;
    pages=orig.pages;
    return *this;
}
void book::show(ostream& os){
    os<<"Book's author: "<<author<<"\n"
        <<"Book's title: "<<title<<"\n"
        <<"Book's publisher: "<<publisher<<"\n"
        <<"Book's year of release: "<<year<<"\n"
        <<"Number of pages in the book: "<<pages<<"\n \n";
}
ostream& operator<<(ostream& os,book& orig)
{
    orig.show(os);
    return os;
}
Файл main.cpp
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
#include "book.h"
#include <iostream>
#include <string>
#include <vector>
 
void menu(){
    cout<<"    Choose an option \n"
        <<"1: Add new books to the list \n"
        <<"2: Get a list of books of the same author \n"
        <<"3: Get a list of books with less pages than a certain amount \n"
        <<"4: Get a list of books published after a certain year: \n"
        <<"5: Close the program \n \n";
}
 
int main(){
    vector<book> library;
    while (true)
    {
        menu();
        int key;
        cin>>key;
        cin.get(); //  !!!!!!!!!!!!! 
        switch(key)
        {
        case 1:
        {
            cout<<"\n How many books do you want to add? \n";
            int amount;
            cin>>amount;
            cin.get(); //  !!!!!!!!!!!!! 
            for (int i=0; i<amount; i++){
                string newauthor;
                string newtitle;
                string newpublisher;
                int newyear;
                int newpages;
 
                cout<<i<<" Enter the book's author: ";
                getline(cin,newauthor); //  !!!!!!!!!!!!! 
 
                cout<<" Enter the book's title: ";
                getline(cin,newtitle);
 
                cout<<" Enter the book's publisher: ";
                getline(cin,newpublisher);
 
                cout<<" Enter the book's year of release: ";
                cin>>newyear;
 
                cout<<" Enter the book's number of pages: ";
                cin>>newpages;
                cin.get(); //  !!!!!!!!!!!!! 
 
                book newbook(newauthor, newtitle, newpublisher, newyear, newpages);
                library.push_back(newbook);
                cout<<"\n";
            }
        }
        break;
        case 2:
        {
            cout<<"Which author's books should be shown?: \n";
            string prefauthor;
            getline(cin,prefauthor); //  !!!!!!!!!!!!! 
            cout<<"\n";
            for (size_t i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getauthor()==prefauthor){
                    cout<<library[i];
                }
            }
            system("pause");
        }
        break;
        case 3:
        {
            cout<<"Books with maximum number of pages should be shown?: \n";
            int prefpages;
            cin>>prefpages;cin.get();
            cout<<"\n";
            for (size_t i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getpages()<=prefpages){
                    cout<<library[i];
                }
            }
            system("pause");
        }
        break;
        case 4:
        {
            cout<<"Minimum year of publication for books should be shown?: \n";
            int prefyear;
            cin>>prefyear;cin.get();
            cout<<"\n";
            for (size_t i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getyear()>prefyear){
                    cout<<library[i];
                }
            }
            system("pause");
        }
        break;
        case 5:
            return 0;
        default:
            cout<<"kill yourself \n";
            system("pause");
            break;
        }
    }
    return 1;
}
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
20.05.2025, 13:26
Цитата Сообщение от vlisp Посмотреть сообщение
я бы за такое тоже по рукам бил. это же тупо харасмент...
задай себе вопрос: книга - изменяемый объект? Если тебя вдруг начнут называть Педро или Полиграфом и еще в старперы определят, тебе будет приятно?
всё изменяемое, кроме кода программы и прочих низкоуровневых заморочек. Любая переменная на то и переменная, что изменяется.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
20.05.2025, 14:18
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
кроме кода программы
Программы тоже изменяются, например полиморфные вирусы. Это тоже всего лишь программы.
0
 Аватар для volodin661
7092 / 2323 / 352
Регистрация: 10.12.2013
Сообщений: 8,005
20.05.2025, 20:11
Решил развлечься с инопланетным разумом
===================== [ЧАТ] =================================
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
C++ lang: Create class Books with properties: author,title,publisher,year,pages
and two constructors. 
Provide  getters and setters for all properties;
Provide reports in main class a) All authors; b)Allbooks c) Books by authors;
Project consist of 4 files: 
1) file with headers Books.hpp  
2) Class Books implementation Books.cpp  
3) populate.cpp with reading and populating Books from provided XML-file books.xml 
4) main function Main.cpp
 
Provide Makefile with CMake 
Provide command to install newer upstream  LibXML2 library using msys2 toolset
 
Environment - Windows; Toolset - MSYS2
======================================== ===============


(Про populate и библиотеку LibXml2 добавил после, чтоб посмотреть, как он с этим справится.
Справился - выкинул из main.cpp рукотворное заполнение экземпляра класса Book
и вставил взамен вызов функции из populate.cpp)

1. File Structure
Code
1
2
3
4
5
6
7
8
9
 books
├── CMakeLists.txt
└── build
    ├── books.cpp
    ├── books.hpp
    ├── books.xml
    ├── main.cpp
    ├── populate.cpp
    └── populate.hpp
2. Header File: Book.hpp

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
#ifndef BOOKS_HPP
#define BOOKS_HPP
 
#include <string>
 
class Books {
private:
    std::string author;
    std::string title;
    std::string publisher;
    int year;
    int pages;
 
public:
    // Default constructor
    Books();
 
    // Parameterized constructor
    Books(const std::string& author, const std::string& title,
          const std::string& publisher, int year, int pages);
 
    // Getters
    std::string getAuthor() const;
    std::string getTitle() const;
    std::string getPublisher() const;
    int getYear() const;
    int getPages() const;
 
    // Setters
    void setAuthor(const std::string& author);
    void setTitle(const std::string& title);
    void setPublisher(const std::string& publisher);
    void setYear(int year);
    void setPages(int pages);
};
 
#endif // BOOKS_HPP
3. Implementation File: Book.cpp
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
#include "Books.hpp"
 
// Default constructor
Books::Books()
    : author(""), title(""), publisher(""), year(0), pages(0) {}
 
// Parameterized constructor
Books::Books(const std::string& author, const std::string& title,
             const std::string& publisher, int year, int pages)
    : author(author), title(title), publisher(publisher), year(year), pages(pages) {}
 
// Getters
std::string Books::getAuthor() const { return author; }
std::string Books::getTitle() const { return title; }
std::string Books::getPublisher() const { return publisher; }
int Books::getYear() const { return year; }
int Books::getPages() const { return pages; }
 
// Setters
void Books::setAuthor(const std::string& author) { this->author = author; }
void Books::setTitle(const std::string& title) { this->title = title; }
void Books::setPublisher(const std::string& publisher) { this->publisher = publisher; }
void Books::setYear(int year) { this->year = year; }
void Books::setPages(int pages) { this->pages = pages; }
4. Main Program: main.cpp
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 <iostream>
#include <vector>
#include <set>
#include <map>
#include "Books.hpp"
#include "populate.hpp"
 
int main() {
    std::vector<Books> books;
    if (!loadBooksFromXML("books.xml", books)) {
        std::cerr << "Error loading books from XML." << std::endl;
        return 1;
    }
 
    // a) All authors
    std::set<std::string> authors;
    for (const auto& b : books) {
        authors.insert(b.getAuthor());
    }
 
    std::cout << "All authors:" << std::endl;
    for (const auto& author : authors) {
        std::cout << "- " << author << std::endl;
    }
    std::cout << std::endl;
 
    // b) All books
    std::cout << "All books:" << std::endl;
    for (const auto& b : books) {
        std::cout << "Title: " << b.getTitle()
                  << ", Author: " << b.getAuthor()
                  << ", Publisher: " << b.getPublisher()
                  << ", Year: " << b.getYear()
                  << ", Pages: " << b.getPages()
                  << std::endl;
    }
    std::cout << std::endl;
 
    // c) Books by authors
    std::map<std::string, std::vector<Books>> booksByAuthor;
    for (const auto& b : books) {
        booksByAuthor[b.getAuthor()].push_back(b);
    }
 
    std::cout << "Books by authors:" << std::endl;
    for (const auto& entry : booksByAuthor) {
        std::cout << "Author: " << entry.first << std::endl;
        for (const auto& b : entry.second) {
            std::cout << "  - " << b.getTitle() << std::endl;
        }
    }
 
    return 0;
}

populate.cpp
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
#include "Books.hpp"
#include <vector>
#include <string>
#include <iostream>
#include <libxml/parser.h>
#include <libxml/tree.h>
 
// Function to trim whitespace
static std::string trim(const std::string& str) {
    const char* whitespace = " \t\n\r";
    size_t start = str.find_first_not_of(whitespace);
    size_t end = str.find_last_not_of(whitespace);
    if (start == std::string::npos || end == std::string::npos)
        return "";
    return str.substr(start, end - start + 1);
}
 
// Function to parse XML and populate books vector
bool loadBooksFromXML(const std::string& filename, std::vector<Books>& books) {
    xmlDocPtr doc = xmlReadFile(filename.c_str(), nullptr, 0);
    if (doc == nullptr) {
        std::cerr << "Failed to parse " << filename << std::endl;
        return false;
    }
 
    xmlNodePtr root = xmlDocGetRootElement(doc);
    if (root == nullptr) {
        std::cerr << "Empty XML document" << std::endl;
        xmlFreeDoc(doc);
        return false;
    }
 
    for (xmlNodePtr node = root->children; node != nullptr; node = node->next) {
        if (node->type == XML_ELEMENT_NODE && xmlStrEqual(node->name, BAD_CAST "book")) {
            std::string author, title, publisher;
            int year = 0, pages = 0;
 
            for (xmlNodePtr child = node->children; child != nullptr; child = child->next) {
                if (child->type == XML_ELEMENT_NODE) {
                    std::string content;
                    if (xmlChar* prop = xmlNodeGetContent(child)) {
                        content = (const char*)prop;
                        xmlFree(prop);
                    }
 
                    if (xmlStrEqual(child->name, BAD_CAST "author")) {
                        author = trim(content);
                    } else if (xmlStrEqual(child->name, BAD_CAST "title")) {
                        title = trim(content);
                    } else if (xmlStrEqual(child->name, BAD_CAST "publisher")) {
                        publisher = trim(content);
                    } else if (xmlStrEqual(child->name, BAD_CAST "year")) {
                        year = std::stoi(trim(content));
                    } else if (xmlStrEqual(child->name, BAD_CAST "pages")) {
                        pages = std::stoi(trim(content));
                    }
                }
            }
 
            books.emplace_back(author, title, publisher, year, pages);
        }
    }
 
    xmlFreeDoc(doc);
    return true;
}
populate.hpp
C++
1
2
3
4
#ifndef POPULATE_HPP
#define POPULATE_HPP
bool loadBooksFromXML(const std::string& filename, std::vector<Books>& books);
#endif
5. CMakeLists.txt (CMake build configuration)
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cmake_minimum_required(VERSION 3.10)
project(BooksProject)
 
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
# Find libxml2
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBXML2 REQUIRED libxml-2.0)
 
# Include directories
include_directories(${LIBXML2_INCLUDE_DIRS})
 
# Source files
add_executable(BooksApp Main.cpp populate.cpp Books.cpp)
 
# Link libraries
target_link_libraries(BooksApp ${LIBXML2_LIBRARIES})
target_include_directories(BooksApp PRIVATE ${LIBXML2_INCLUDE_DIRS})


books.XML
XML
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
<library>
    <book>
        <author>Arnold Robbins</author>
        <title>Effective awk Programming</title>
        <publisher>OReilly</publisher>
        <year>2020</year>
        <pages>350</pages>
    </book>
    <book>
        <author>Leo Tolstoy</author>
        <title>Anna Karenina</title>
        <publisher>Apple Books</publisher>
        <year>2018</year>
        <pages>1432</pages>
    </book>
    <book>
        <author>Никлас Натт-о-Даг</author>
        <title>1793. История одного убийства</title>
        <publisher>Publisher B</publisher>
        <year>2018</year>
        <pages>530</pages>
    </book>
    <book>
        <author>Vitaly Bragilevsky</author>
        <title>Haskell in Depth</title>
        <publisher>Manning</publisher>
        <year>2021</year>
        <pages>1200</pages>
    </book>
</library>
7. MSYS2 Installation Commands
PowerShell
1
2
3
4
5
6
7
8
# Update the package database and core system packages
pacman -Syu
 
# Close MSYS2 terminal, reopen it, then run:
pacman -Su
 
# Install g++ compiler and make tool
pacman -S --needed base-devel mingw-w64-x86_64-gcc
8. Building and Running

Using CMake:
PowerShell
1
2
3
4
cd books/build
cmake ..
make
./BooksApp
Output:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
All authors:
- Arnold Robbins
- Leo Tolstoy
- Vitaly Bragilevsky
- Никлас Натт-о-Даг
 
All books:
Title: Effective awk Programming, Author: Arnold Robbins, Publisher: OReilly, Year: 2020, Pages: 350
Title: Anna Karenina, Author: Leo Tolstoy, Publisher: Apple Books, Year: 2018, Pages: 1432
Title: 1793. История одного убийства, Author: Никлас Натт-о-Даг, Publisher: Publisher B, Year: 2018, Pages: 530
Title: Haskell in Depth, Author: Vitaly Bragilevsky, Publisher: Manning, Year: 2021, Pages: 1200
 
Books by authors:
Author: Arnold Robbins
  - Effective awk Programming
Author: Leo Tolstoy
  - Anna Karenina
Author: Vitaly Bragilevsky
  - Haskell in Depth
Author: Никлас Натт-о-Даг
  - 1793. История одного убийства
PS:
1) MS VisualStudio снести.
2) MS VS Code установить и MSYS2 установить:
PowerShell
1
2
3
4
scoop bucket add main
scoop install main/msys2
scoop bucket add extras
scoop install extras/vscode
0
фрилансер
 Аватар для Алексей1153
6495 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,284
20.05.2025, 22:14
Цитата Сообщение от volodin661 Посмотреть сообщение
// Default constructor
Books::Books()
    : author(""), title(""), publisher(""), year(0), pages(0) {}
ужас такой дефолтный конструктор

и вообще, все самые элементарные функции в ЕТ вытаращены - прощай инлайн
0
 Аватар для volodin661
7092 / 2323 / 352
Регистрация: 10.12.2013
Сообщений: 8,005
21.05.2025, 02:18
Бесплатная жопэтэ,
сделала ровно то, что заказывал студент;
3 секунды, с первой же попытки ни одной ошибки, заказанную систему сборки реализовала,
внешнюю библиотеку подтянула. Я с ней( с ним? ) ни словом не обмолвился.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
21.05.2025, 03:26
Цитата Сообщение от volodin661 Посмотреть сообщение
сделала ровно то, что заказывал студент;
У студента разве был не рабочий код?
0
 Аватар для Storm Screamer
4954 / 1530 / 118
Регистрация: 21.04.2013
Сообщений: 9,007
21.05.2025, 03:38
Цитата Сообщение от volodin661 Посмотреть сообщение
сделала ровно то, что заказывал студент;
Перестал удаляться файл?
0
 Аватар для volodin661
7092 / 2323 / 352
Регистрация: 10.12.2013
Сообщений: 8,005
21.05.2025, 06:47
Цитата Сообщение от SmallEvil Посмотреть сообщение
например полиморфные вирусы.
Полиморфные вирусы ?
Например ?
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,413
21.05.2025, 10:55
Цитата Сообщение от zss Посмотреть сообщение
Деструктор не уничтожает объект.
Он тупо делает только то, что в нем написано.
он именно уничтожает объект на своем уровне абстракции.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6295 / 3017 / 1053
Регистрация: 01.06.2021
Сообщений: 11,435
21.05.2025, 11:49
Цитата Сообщение от SmallEvil Посмотреть сообщение
Программы тоже изменяются
прям если говорить об изменении программного кода на лету, то такое возможно только на старинных процах и ОС. На винде этого не допустит DEP. Кроме того, сами современные процессоры тоже различают кэши кода и кэши для данных. При этом кэши кода не поддерживают запись.

Но можно реализовать другую схему. Учитывая, что на винде исполняемый файл будет блокирован, то можно предположить вариант, когда программа А запускает программу Б, а сама завершается. Программа Б удаляет А и на ее месте генерируют новую копию А, после чего запускает эту копию и сама завершается. Но тут сложно говорить о самоизменении программы, поскольку программа А не сама меняется, а ее меняет Б.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
24.05.2025, 09:57
Цитата Сообщение от Royal_X Посмотреть сообщение
На винде этого не допустит DEP.
На винде есть функция VirtualProtect.
0
Software Engineer
 Аватар для Custos
336 / 340 / 55
Регистрация: 23.09.2014
Сообщений: 1,047
24.05.2025, 12:57
Цитата Сообщение от Royal_X Посмотреть сообщение
На винде этого не допустит DEP
Наличие DEP никак не противоречит возможности изменения исполняемого кода. DEP лишь не позволяет передать управление в неисполняемую область памяти.
Как уже упомянули выше, Windows предоставляет возможность из RX секции сделать RWX, внести нужные изменения и сделать ее снова RX.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6295 / 3017 / 1053
Регистрация: 01.06.2021
Сообщений: 11,435
24.05.2025, 13:55
Цитата Сообщение от Custos Посмотреть сообщение
Windows предоставляет возможность из RX секции сделать RWX, внести нужные изменения и сделать ее снова RX.
и винда спокойно на это реагирует?

тут туториал из нескольких частей, который описывает как разработать вирус на винде

https://4p0cryph0n.github.io/m... lopment-1/
https://4p0cryph0n.github.io/m... lopment-2/
https://4p0cryph0n.github.io/m... lopment-3/
https://4p0cryph0n.github.io/m... lopment-4/
https://4p0cryph0n.github.io/m... lopment-5/

Чел применяет множество техник, чтобы винда не реагировала на его прогу. Хотя, сомневаюсь, что это будет работать. Встроенная защита винды блокирует самые безопасные файлы, а такую шнягу точно сожрет.
0
Software Engineer
 Аватар для Custos
336 / 340 / 55
Регистрация: 23.09.2014
Сообщений: 1,047
24.05.2025, 15:16
Цитата Сообщение от Royal_X Посмотреть сообщение
и винда спокойно на это реагирует?
Зависит от того, что пытаются реализовать используя эту возможность
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
07.06.2025, 19:01
Цитата Сообщение от zss Посмотреть сообщение
Деструктор не уничтожает объект.
Он тупо делает только то, что в нем написано.
Деструктор класса в очевидном смысле "симметричен" конструктору класса. И, как и конструктор, деструктор в общем случае делает еще много чего, что в нем не написано, а содержится неявно.

В частности, например, при удалении динамического объекта через delete в популярных реализациях освобождение сырой памяти объекта (т.е. вызов operator delete) делается именно изнутри деструктора. Хотя этого в нем "не написано".
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2025, 19:01

При попытке компиляции на ноутбуке вылезает данная ошибка. Что это?
Вот текст ошибки. Причем на чужом ноуте компилилось нормально, здесь вдруг траблы какие-то. С...

Ошибка при попытке компиляции и последующего запуска программы
Доброго времени суток! Недавно появился один глюк, который очень сильно напрягает и который я уже...

Ошибки компиляции при попытке использования boost::filesystem
Имею простейший пример : #include &lt;boost/filesystem.hpp&gt; #include...

Ошибка при попытке компиляции стороннего проекта
В общем это мой первый опыт работы с либами от сторонних пользователей, а так как это C++, тут все...

Ошибка при попытке компиляции через GCC
https://www.cyberforum.ru/attachment.php?attachmentid=1481175&amp;stc=1&amp;d=1723539913 вот что пишет...


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru