c ++, синтаксическая ошибка: отсутствует ';' перед идентификатором 'N0'

0

У меня проблема с компиляцией моего кода в Windows.

В системах на базе Unix все работает нормально, но когда я компилирую его на windows (в настоящее время с visual studio 2010 express), я получаю следующие ошибки:

Ошибка 253 ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'N0' C:\ghost++\ghost\ohconnect.h 45

Ошибка 254 ошибка C4430: отсутствующий спецификатор типа - int предполагается. Примечание: C++ не поддерживает default-int C:\ghost++\ghost\ohconnect.h 45

Ошибка 255 Ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int C:\ghost++\ghost\ohconnect.h 45

Ошибка 256 ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'N' C:\ghost++\ghost\ohconnect.h 46

Ошибка ошибки 257 C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int C:\ghost++\ghost\ohconnect.h 46

И так далее. Я думаю, что все это относится к моему заголовочному файлу, сам класс предназначен для подключения к веб-сайтам:

#ifndef OHConnect_H
#define OHConnect_H

//
// OHCONNECT
//

class CTCPClient;
class CBaseGame;
class CCommandPacket;
struct OHCHeader {
  unsigned header_size;
  bool fin;
  bool mask;
  enum opcode_type {
    CONTINUTATION = 0x0,
    TEXT_FRAME = 0x1,
    BINARY_FRAME = 0x2,
    CLOSE = 8,
    PING = 9,
    PONG = 0xa,
  } opcode;
  uint64_t N0;
  uint64_t N;
  uint8_t masking_key[4];
};

В моем .cpp файле я использую namespace std; и включал <string> только для окон. Но все это пока не работает. Я не хотел ставить целые файлы в вопрос, потому что они на самом деле длинные. Вот полный источник: Headerfile Mainfile

Что я здесь не так?

  • 0
    #include ing stdint.h должно исправить эти ошибки.
Теги:
compiler-errors

2 ответа

4
Лучший ответ

Компилятор не знает тип uint64_t и uint8_t, добавляет:

#include <cstdint>
2

Заметим также, что конечная запятая в перечислении (после определения PONG = 0xa) была стандартизирована только в С++ 11, после изменения, внесенного в C99. Более старые компиляторы или те, которые работают в режиме, соответствующем старому стандарту 1998/2003, могут также преодолеть это.

  • 0
    хорошая точка зрения. Не думал об этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню