Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что это? - C2850: 'PCH header file'

13K
16 декабря 2005 года
varta
7 / / 09.12.2005
Доброго времени суток!
Помогите, кто может!
Пишу программу для работы с сокетами. Среда - .NET 2003 (VC++)
Приложение клиент-серверное.Чтоб не описывать сокет каждого подключившегося клиента, хочу создать свой класс. Вот каким образом.

/* файл MySocket.h*******************************
#ifndef _MYSOCKET_H
#define _MYSOCKET_H
#include <winsock2.h>
//#include <stdlib.h>

class MySocket
{
protected:
MySocket(void);
~MySocket(void);
SOCKET S;

public:
int newsend(const char* buf, int len, int flags);
int newrecv(char* buf, int len, int flags);
}
#endif


/*файл MySocket.cpp*****************************
#include "MySocket.h"

MySocket::MySocket(void) // конструктор
{
WORD wVersion; // запрашиваемая версия winsock-интерфейса
WSADATA wsaData; // сюда записываются данные о сокете
wVersion = MAKEWORD (2, 0); // задаем версию winsock

int wsaInitError = WSAStartup (wVersion, &wsaData); // инициализируем winsock
if (wsaInitError != 0)
// говорим пользователю, что возникли проблемы и выходим
exit (1);
else
// если инициализация прошла успешно, то пора создавать сокет
S=socket(AF_INET, SOCK_STREAM, 0);
}

MySocket::~MySocket(void) //деструктор
{
shutdown(S, SD_BOTH);
closesocket(S);
}

int MySocket::newsend(const char * buf, int len, int flags)
{
int retcode=send (S, buf, len, flags);
return retcode;
}

int MySocket::newrecv(char * buf, int len, int flags)
{
int retcode=recv (S, buf, len, flags);
return retcode;
}

при попытке откомпилировать MySocket.cpp выдает следующее:
c:\srv\server\mysocket.cpp(6): error C2850: 'PCH header file' : only allowed at file scope; may not be in a nested construct

В чем ошибка - не пойму!
PS: Варианты ответа "в ДНК" - тоже вариант, но хотелось бы поточнее!)))
1.8K
16 декабря 2005 года
_const_
229 / / 26.11.2003
Цитата:
Originally posted by varta
Доброго времени суток!
Помогите, кто может!
Пишу программу для работы с сокетами. Среда - .NET 2003 (VC++)
Приложение клиент-серверное.Чтоб не описывать сокет каждого подключившегося клиента, хочу создать свой класс. Вот каким образом.
Код:
/* файл MySocket.h*******************************
#ifndef _MYSOCKET_H
#define _MYSOCKET_H
#include <winsock2.h>
//#include <stdlib.h>

class MySocket
{
protected:
        MySocket(void);
        ~MySocket(void);
        SOCKET S;

public:
    int newsend(const char* buf, int len, int flags);
    int newrecv(char* buf, int len, int flags);
}; //<- ЗДЕСЬ!!!!
#endif

хотелось бы поточнее!)))



Не забываем ";" в указанном месте! И еще может быть из-за неподключенного stdafx.h.

13K
16 декабря 2005 года
varta
7 / / 09.12.2005
Цитата:
Originally posted by _const_
Не забываем ";" в указанном месте! И еще может быть из-за неподключенного stdafx.h.


Спасибо огромное!
До баги докопался сам... в 5 утра...)))
Все дело было из-за точки с запятой.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог