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

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

Восстановить пароль Регистрация
 
Balabek
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 23
12.09.2012, 09:45     Организация общего класса #1
Всем, привет!
Я создал класс, который работает прекрасно для одного приложения в котором я его создаю (в Visual C++). Создал Example.h и Example.cpp. Как сделать? чтобы при написании следующего приложения я мог просто включить Example.h и класс заработал?
Проблема в том, что я создал класс в одном приложении и точно такой же в другом. Одно приложение записывает объект класса в файл (напр. example.dat), а второе не может считать этот объект из указанного выше файла.
Заранее благодарю!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2012, 09:45     Организация общего класса
Посмотрите здесь:

Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел C++
внук родительского класса не может работать с полями дедовского класса; почему? C++
C++ Вызов метода производного класса через обращение к методу базового класса
Как получить private переменную класса, функцей членом другого класса C++
Как обраиться к функции класса через другую функцию класса (друга)? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
12.09.2012, 09:52     Организация общего класса #2
Добавить эти файлы в новое приложение.
Balabek
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 23
12.09.2012, 09:55  [ТС]     Организация общего класса #3
Цитата Сообщение от David Sylva Посмотреть сообщение
Добавить эти файлы в новое приложение.
Именно эти же файлы через "открыть"? Не создавая новые такие же? Если да то проблемма )) у меня взломанный Visual C++ 6.0 и на "открыть" вылетает.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
12.09.2012, 09:59     Организация общего класса #4
Я так понял у тебя есть исходные файлы, которые работают корректно и ты хочешь добавить их в другой проект. Правильно?
Balabek
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 23
12.09.2012, 10:06  [ТС]     Организация общего класса #5
Цитата Сообщение от David Sylva Посмотреть сообщение
Я так понял у тебя есть исходные файлы, которые работают корректно и ты хочешь добавить их в другой проект. Правильно?
Да именно так
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
12.09.2012, 10:10     Организация общего класса #6
В Не знаю как делается в 6 Студии, но у меня в 10, заходишь в обозреватель решений и добавляешь файлы заголовка и исходного файла.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
12.09.2012, 10:15     Организация общего класса #7
Покажи как класс выглядит и как сохраняешь в файл.
Allaire
0 / 0 / 0
Регистрация: 02.04.2009
Сообщений: 3
13.09.2012, 09:27     Организация общего класса #8
Привет! ну что, получилось?
Balabek
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 23
14.09.2012, 09:44  [ТС]     Организация общего класса #9
Цитата Сообщение от 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-приложение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2012, 09:43     Организация общего класса
Еще ссылки по теме:

C++ Организация класса (lib.so + header.h)
Шаблон класса, параметром которого должны являться наследники определённого класса C++
Как получить доступ к методам класса, который содержится в векторе класса C++

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

Или воспользуйтесь поиском по форуму:
Balabek
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 23
24.09.2012, 09:43  [ТС]     Организация общего класса #10
Всем, очередной привет!
Как использовать одну реализацию класса, я разобрался )) И сузил неполадки в проем приложении. Ошибка происходит при чтении из файла объекта класса. Т.е. я записываю с помощью WriteFile() объект своего класса в файл, потом считываю из файла с помощью ReadFile. Призавершении программы происходит ошибка. В классе есть элемент-данные, память под которые выделяется из кучи с помощью HeapAlloc() (поменял new и delete на HeapAlloc и HeapFree). Если я уберу из деструктора HeapFree(), то все работает нормально, если оставлю то ошибка доступа.
Кто сможет мне помочь?
Yandex
Объявления
24.09.2012, 09:43     Организация общего класса
Ответ Создать тему
Опции темы

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