|
06.07.2010, 21:36
|
#1
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Проблема с класами в MFC
Всем привет!
Недавно у меня возникла следующая проблема в C++, компилятор ругается на строчки:
BOOL CserverDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_pListenSocket.SetParentDlg(this); //ругается вот сюда...
m_pConnectSocket.SetParentDlg(this); // ...и сюда
m_pListenSocket.Create(2000); //Создаем сокет на 2000 порту
return TRUE; // return TRUE unless you set the focus to a control
}
|
Как ругантся:
error C2664: 'CMySocket::SetParentDlg' : cannot convert parameter 1 from 'CserverDlg *const ' to 'CMySocket::CServerDlg *'
|
и
error C2664: 'CMySocket::SetParentDlg' : cannot convert parameter 1 from 'CserverDlg *const ' to 'CMySocket::CServerDlg *'
|
Помогите подправить код!
Если надо могу выложить весь проект (пользуюсь Visual Studio 2005)
Взарание спасибо!
|
(Offline)
|
|
06.07.2010, 21:49
|
#2
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Проблема с класами в MFC
Хорс ниасилил, дак вперёд в С++ -__-
|
(Offline)
|
|
06.07.2010, 22:13
|
#3
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с класами в MFC
Хорс ниасилил, дак вперёд в С++ -__-
|
Вообщето блиц и хорс я бросил ещё давно (и совсем не из-за того что не осилил). Если ты сым ничё не соображаеш, но сиди и молчи, ок?
----------------------------------------------------------------
Ну так вы мне поможите с кодом?
|
(Offline)
|
|
06.07.2010, 22:50
|
#4
|
|
Ответ: Проблема с класами в MFC
выложи лучше сразу весь код
|
|
|
06.07.2010, 23:13
|
#5
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с класами в MFC
выложи лучше сразу весь код
|
Я лучше весь проект выложу (там он просто состоит из нескольких файлов)
---------> http://depositfiles.com/files/f90d8xazo <-----------------
|
(Offline)
|
|
07.07.2010, 01:08
|
#6
|
|
Ответ: Проблема с класами в MFC
от такого говнокодища (это прям нечто, плюс еще ncb файл выложить в архив, да) компилятор падает, я так толком и не понял за 5 минут из-за чего он падает
ошибка в том что имена в C++ чувствительны к регистру, потому CServerDlg переименуй в CserverDlg и вынеси его объявление из класса, вот так :
class CserverDlg;
class CMySocket : public CSocket
{
public:
public:
CserverDlg* m_pDlg;
CMySocket();
virtual ~CMySocket();
void CMySocket::SetParentDlg(CserverDlg *pDlg)
{
m_pDlg=pDlg; //Указатель на диалоговое окно
}
public:
virtual void OnAccept(int nErrorCode);
public:
virtual void OnReceive(int nErrorCode);
};
|
|
|
Эти 2 пользователя(ей) сказали Спасибо за это полезное сообщение:
|
|
07.07.2010, 12:50
|
#7
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с класами в MFC
Спасибо, jimon , помогло!
|
(Offline)
|
|
07.07.2010, 14:40
|
#8
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с класами в MFC
А вот ещё одна, в файле MySocket.cpp :
Код:
void CMySocket::OnAccept(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
AfxMessageBox(LPCTSTR("Соединение"));
m_pDlg->OnAccept();
this->OnAccept(nErrorCode);
CSocket::OnAccept(nErrorCode);
}
void CMySocket::OnReceive(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
AfxMessageBox(LPCTSTR("Данные получены"));
m_pDlg->OnReceive();
this->OnReceive(nErrorCode);
CSocket::OnReceive(nErrorCode);
}
|
Лог:
1>------ Build started: Project: server, Configuration: Debug Win32 ------
1>Compiling...
1>MySocket.cpp
1>d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.cpp(27) : error C2027: use of undefined type 'CserverDlg'
1> d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.h(23) : see declaration of 'CserverDlg'
1>d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.cpp(27) : error C2227: left of '->OnAccept' must point to class/struct/union/generic type
1>d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.cpp(36) : error C2027: use of undefined type 'CserverDlg'
1> d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.h(23) : see declaration of 'CserverDlg'
1>d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.cpp(36) : error C2227: left of '->OnReceive' must point to class/struct/union/generic type
1>Build log was saved at "file://d:\Рабочий стол\C++\My C++ Projects\Новая папка\sssss\server\server\Debug\BuildLog.htm"
1>server - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
|
Тут тоже скорей всего что то с класами, просто никогда с класами не работал, а вот щас пришлось...
|
(Offline)
|
|
07.07.2010, 15:38
|
#9
|
|
Ответ: Проблема с класами в MFC
добавь include CserverDlg в MySocket.cpp, и почитай книжки
|
|
|
Сообщение было полезно следующим пользователям:
|
|
07.07.2010, 21:34
|
#10
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Проблема с класами в MFC
Сообщение от jimon
добавь include CserverDlg в MySocket.cpp, и почитай книжки
|
а лучше в обратном порядке.....
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.07.2010, 22:28
|
#11
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с класами в MFC
добавь include CserverDlg в MySocket.cpp
|
ты имел в виду #include "serverDlg.h" добывить в самое начало файла MySocket.cpp ?
Всё равно не помогает, пишет:
d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.cpp(2 : error C2248: 'CserverDlg::OnAccept' : cannot access protected member declared in class 'CserverDlg'
1> d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\serverdlg.h(31) : see declaration of 'CserverDlg::OnAccept'
1> d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\serverdlg.h(9) : see declaration of 'CserverDlg'
1>d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\mysocket.cpp(37) : error C2248: 'CserverDlg::OnReceive' : cannot access protected member declared in class 'CserverDlg'
1> d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\serverdlg.h(32) : see declaration of 'CserverDlg::OnReceive'
1> d:\рабочий стол\c++\my c++ projects\новая папка\sssss\server\server\serverdlg.h(9) : see declaration of 'CserverDlg'
|
|
(Offline)
|
|
07.07.2010, 23:02
|
#12
|
|
Ответ: Проблема с класами в MFC
почитай книжки
|
|
|
Сообщение было полезно следующим пользователям:
|
|
07.07.2010, 23:20
|
#13
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с класами в MFC
Сообщение от jimon
почитай книжки
|
Да я почитаю! Обязательно! Просто мне сейчас не дочтение ...
Мне прогу нужно доделать
Помогите пожалуста...
|
(Offline)
|
|
08.07.2010, 01:17
|
#14
|
ПроЭктировщик
Регистрация: 23.09.2007
Сообщений: 126
Написано 11 полезных сообщений (для 16 пользователей)
|
Ответ: Проблема с класами в MFC
=) ну. без полного алгоритма трудно чем то помочь.
а ты прогу просто для себя делаешь или для учебы?
если просто для себя, то можно же не всю книжку читать а про классы и их капризы. (Но лучше потом все прочесть) это видь хорошее лекарство от головной боли над мелкими проблемами.
|
(Offline)
|
|
08.07.2010, 12:33
|
#15
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Проблема с класами в MFC
=) ну. без полного алгоритма трудно чем то помочь.
а ты прогу просто для себя делаешь или для учебы?
если просто для себя, то можно же не всю книжку читать а про классы и их капризы. (Но лучше потом все прочесть) это видь хорошее лекарство от головной боли над мелкими проблемами.
|
Да только для себя, для учёбы мне ещё рано я толь в 9 класе учюсь (после лета уже в 10...). Я вообще интернет чат пишу (типа аськи), вот решил с написания сервера и клиента. По началу скачивал готовые проекты, доведёные до ума, но потом подумал что лучше сам начну писать (по учебникам, мануалам ...) и вот клиент вроде написал , а вот с сервером байда какаято получается.
А вообще вот готовые проекты (сервер (нерабочий), и клиент (вроде рабочий)) ----> http://depositfiles.com/files/2h636ek01
__________________
Мой сайт ---> http://xakni.ucoz.ru
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:00.
|