Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 19.07.2012
Сообщений: 26

Организация общего класса

12.09.2012, 09:45. Показов 745. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем, привет!
Я создал класс, который работает прекрасно для одного приложения в котором я его создаю (в Visual C++). Создал Example.h и Example.cpp. Как сделать? чтобы при написании следующего приложения я мог просто включить Example.h и класс заработал?
Проблема в том, что я создал класс в одном приложении и точно такой же в другом. Одно приложение записывает объект класса в файл (напр. example.dat), а второе не может считать этот объект из указанного выше файла.
Заранее благодарю!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.09.2012, 09:45
Ответы с готовыми решениями:

Организация класса (lib.so + header.h)
Есть 3 файла: main.cpp header.h lib.so Задача сделать стек используя контейнер\класс. Я остановился на class. Мое...

Сериализация custom обьектов, которые имеют общего родителя и поле другого класса
Подскажите пожалуйста, как мне правильно записать информацию с vector в файл, объектами vector являются кастомные классы - в моем случае...

Организация общего доступа к ресурсам в рабочей группе
Информация с интуита - На каждом компьютере находится несколько учетных записей пользователя. Чтобы войти в систему любого компьютера,...

9
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
12.09.2012, 09:52
Добавить эти файлы в новое приложение.
0
0 / 0 / 1
Регистрация: 19.07.2012
Сообщений: 26
12.09.2012, 09:55  [ТС]
Цитата Сообщение от David Sylva Посмотреть сообщение
Добавить эти файлы в новое приложение.
Именно эти же файлы через "открыть"? Не создавая новые такие же? Если да то проблемма )) у меня взломанный Visual C++ 6.0 и на "открыть" вылетает.
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
12.09.2012, 09:59
Я так понял у тебя есть исходные файлы, которые работают корректно и ты хочешь добавить их в другой проект. Правильно?
0
0 / 0 / 1
Регистрация: 19.07.2012
Сообщений: 26
12.09.2012, 10:06  [ТС]
Цитата Сообщение от David Sylva Посмотреть сообщение
Я так понял у тебя есть исходные файлы, которые работают корректно и ты хочешь добавить их в другой проект. Правильно?
Да именно так
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
12.09.2012, 10:10
В Не знаю как делается в 6 Студии, но у меня в 10, заходишь в обозреватель решений и добавляешь файлы заголовка и исходного файла.
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
12.09.2012, 10:15
Покажи как класс выглядит и как сохраняешь в файл.
0
0 / 0 / 0
Регистрация: 02.04.2009
Сообщений: 3
13.09.2012, 09:27
Привет! ну что, получилось?
0
0 / 0 / 1
Регистрация: 19.07.2012
Сообщений: 26
14.09.2012, 09:44  [ТС]
Цитата Сообщение от Allaire Посмотреть сообщение
Привет! ну что, получилось?
Нет. Только сегодня разобрался с Visual Studio 2010 и перевел все туда. Не работает а выдает вот такую штуку:
0xC0000005: Нарушение прав доступа при чтении "0x00385bc8".
Необработанное исключение в "0x5d5b7092" в "CarLine_User.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00385bc8".

Добавлено через 2 минуты
Вот мой код: (извиняюсь, не знаю как оформлять код)
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
//BusyDriver.h
class BusyDriver
{
public:
    BusyDriver(wchar_t* tmpDriverName=L" ",wchar_t* tmpStatus=L"free",wchar_t* tmpDeparture=L" ",
        wchar_t* tmpPredictionArrival=L" ",wchar_t* tmpDestination=L" ",wchar_t* tmpSenderName=L" ",wchar_t* tmpArrival=L" ");
    ~BusyDriver();
 
    void SetDriverName(wchar_t* tmpDriverName);
    void SetStatus(wchar_t* tmpStatus);
    void SetDeparture(wchar_t* tmpDeparture);
    void SetPredictionArrival(wchar_t* tmpPredictionArrival);
    void SetDestination(wchar_t* tmpDestination);
    void SetSenderName(wchar_t* tmpSenderName);
    void SetArrival(wchar_t* tmpArrival);
 
    wchar_t* GetDriverName();
    wchar_t* GetStatus();
    wchar_t* GetDeparture();
    wchar_t* GetPredictionArrival();
    wchar_t* GetDestination();
    wchar_t* GetSenderName();
    wchar_t* GetArrival();
 
private:
    wchar_t* driverName;
    wchar_t status[10];
    wchar_t departure[8];
    wchar_t predictionArrival[8];
    wchar_t* destination;
    wchar_t* senderName;
    wchar_t arrival[8];
};
 
//BusyDriver.cpp
#include<windows.h>
#include<windowsx.h>
#include"BusyDriver.h"
 
BusyDriver::BusyDriver(wchar_t* tmpDriverName,wchar_t* tmpStatus,wchar_t* tmpDeparture,
        wchar_t* tmpPredictionArrival,wchar_t* tmpDestination,wchar_t* tmpSenderName,wchar_t* tmpArrival)
{
    SetDriverName(tmpDriverName);
    SetStatus(tmpStatus);
    SetDeparture(tmpDeparture);
    SetPredictionArrival(tmpPredictionArrival);
    SetDestination(tmpDestination);
    SetSenderName(tmpSenderName);
    SetArrival(tmpArrival);
}
 
void BusyDriver::SetDriverName(wchar_t* tmpDriverName)
{
    driverName=new wchar_t[strlen((char*)tmpDriverName)+1];
    strcpy((char*)driverName,(char*)tmpDriverName);
 
}
 
void BusyDriver::SetStatus(wchar_t* tmpStatus)
{
    strcpy((char*)status,(char*)tmpStatus);
}
 
void BusyDriver::SetDeparture(wchar_t* tmpDeparture)
{
    strcpy((char*)departure,(char*)tmpDeparture);
}
 
void BusyDriver::SetPredictionArrival(wchar_t* tmpPredictionArrival)
{
    strcpy((char*)predictionArrival,(char*)tmpPredictionArrival);
}
 
void BusyDriver::SetDestination(wchar_t* tmpDestination)
{
    destination=new wchar_t[strlen((char*)tmpDestination)+1];
    strcpy((char*)destination,(char*)tmpDestination);
}
 
void BusyDriver::SetSenderName(wchar_t* tmpSenderName)
{
    senderName=new wchar_t[strlen((char*)tmpSenderName)+1];
    strcpy((char*)senderName,(char*)tmpSenderName);
}
 
void BusyDriver::SetArrival(wchar_t* tmpArrival)
{
    strcpy((char*)arrival,(char*)tmpArrival);
}
 
 
wchar_t* BusyDriver::GetDriverName()
{
    return driverName;
}
 
wchar_t* BusyDriver::GetStatus()
{
    return status;
}
 
wchar_t* BusyDriver::GetDeparture()
{
    return departure;
}
 
wchar_t* BusyDriver::GetPredictionArrival()
{
    return predictionArrival;
}
 
wchar_t* BusyDriver::GetDestination()
{
    return destination;
}
 
wchar_t* BusyDriver::GetSenderName()
{
    return senderName;
}
 
wchar_t* BusyDriver::GetArrival()
{
    return arrival;
}
 
BusyDriver::~BusyDriver(){
    delete [] driverName;
    delete [] destination;
    delete [] senderName;
}
Добавлено через 1 минуту
Записваю объект класса в файд example.dat из консольного приложения. Пытаюсь считать через Windows-приложение.
0
0 / 0 / 1
Регистрация: 19.07.2012
Сообщений: 26
24.09.2012, 09:43  [ТС]
Всем, очередной привет!
Как использовать одну реализацию класса, я разобрался )) И сузил неполадки в проем приложении. Ошибка происходит при чтении из файла объекта класса. Т.е. я записываю с помощью WriteFile() объект своего класса в файл, потом считываю из файла с помощью ReadFile. Призавершении программы происходит ошибка. В классе есть элемент-данные, память под которые выделяется из кучи с помощью HeapAlloc() (поменял new и delete на HeapAlloc и HeapFree). Если я уберу из деструктора HeapFree(), то все работает нормально, если оставлю то ошибка доступа.
Кто сможет мне помочь?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2012, 09:43
Помогаю со студенческими работами здесь

Как парсить конкретные данные из общего класса?
Здравствуйте!Я использую библиотеку jsoup для парсинга html страниц сайтов. Например если мне нужно получить значение из класса...

Организация класса
Помогите теоретически, наконец я все таки взялся за эти классы. Понял что к чему, как их описывать. Но пока что не понимаю, как их лучше...

Организация класса сортировки
Доброго времени суток Есть проект, в котором написан а) голый метод сортировки массива (Шелла) б) метод отрисовки массива на форме в)...

Правильная организация класса
Здравствуйте. Есть задача создания базового класса для парсинга сайтов с объявлением о работе. public abstract class ParseMain { ...

Организация настроек сложной структуры/класса
Здравствуйте, форумчане!! Возник такой вопрос: что если класс, который я реализую имеет большое колличество вариантов настроек...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru