Я пытаюсь создать клиент-серверную программу, которая позволила бы мне написать кому-то. Все работало правильно, когда я делал это серверным. Теперь, когда я хочу реализовать ту же самую функцию, которую я сделал для серверной части в Visual Studio, Visual Studio говорит, что я не могу, потому что он не распознает строку. Я пробовал с и без включения строки, но это не сработает.Visual Studio 2012 Ultimate не распознает тип String
Вот что код выглядеть для клиента:
#pragma once
//#include <winSock2.h>
//#include <Windows.h>
#include "ClientNetwork.h"
#include "NetworkData.h"
#include <string>
#include <string.h>
class ClientGame
{
public:
ClientGame();
~ClientGame(void);
ClientNetwork* network;
void sendActionPackets();
char network_data[MAX_PACKET_SIZE];
void update();
void sendMessagePacket(string message);
};
Visual Studio дает мне «ошибка синтаксиса:. Идентификатор„строка“ Тем не менее, я ясно включил его во всех отношениях можно там
.Кроме того, у меня есть один и тот же код в одном проекте, но для серверной стороны моей программы Вот оно:.
#pragma once
#include "ServerNetwork.h"
#include "NetworkData.h"
class ServerGame
{
public:
ServerGame(void);
~ServerGame(void);
void update();
void receiveFromClients();
void sendActionPackets();
void sendMessagePacket(string message);
private:
//IDs for the clients connection for table in ServerNetwork
static unsigned int client_id;
//The ServerNetwork object
ServerNetwork* network;
//data buffer
char network_data[MAX_PACKET_SIZE];
};
И это работает даже без го e #include string/string.h. Кто-нибудь знает, почему это так?
** EDIT Я должен был указать, я попытался объединить его в std так же, как и "std :: string". Но все же это не сработает.
** Похоже, что это «разрешено» Удаление «string.h» включает в себя, но сохранение простой «строки» и добавление области «std ::» позволило решить эту проблему. Я все еще довольно смущен, почему нет проблем в моей серверной версии. Я не должен был включать и не охватить его. Во всяком случае, я должен быть в порядке! Thnanks! :)
Оставив пространство имен. Это 'std :: string'. – user4581301
Вместо того, чтобы указывать 'std :: string' снова и снова, и если вы можете быть уверены, что у вас не будет прятаться какая-либо строка, вы можете немного сэкономить свои проблемы и придерживаться' using std :: string; ' вверху вверх по файлам CPP в рамках операторов include. Не ставьте его выше операторов include, потому что бог знает, что может сломаться, если какой-то заголовок уже использует строку. – user4581301
Я должен был указать, я также попытался включить его в std так же: «std :: string». Но все же это не сработает :( – ECHO