난과 같은 메시지가 : I과 같은 몇 가지 이유를 들어구글 Protobuf3 여러 문자열
server::player::Connected connectMessage; // send this to this joining client
connectMessage.set_name("clientName");
connectMessage.set_pid("clientId");
connectMessage.set_scolor("shipColor");
connectMessage.set_sname("shipName");
connectMessage.set_xloc(0);
connectMessage.set_yloc(0);
connectMessage.set_zrot(0);
: 내 C 같은 ++ 코드 내에서 초기화를 시도하고
message Connected {
sint32 xloc = 1; // x spawn world position
sint32 yloc = 2; // y spawn world position
sint32 zrot = 3; // z spawn rotation
string sector = 4; // sector name (unsure about this)
string name = 5; // player name
string pid = 6; // player id
string scolor = 7; // ship color
string sname = 8; // ship name
}
을 내 문자열 매개 변수, 그 문자열 값으로 설정되기 전에 이전 문자열을 설정합니다. 그래서, 만약 내가 set_pid 이름 필드는 또한 PID로 변경됩니다. set_scolor 이름 & pid가 s_color로 설정됩니다. set_sname 이름, pid & scolor가 sname으로 변경됩니다. 그들은 모두 같은 문자열 포인터 필드 위치를 공유하는 것 같습니다.
각 문자열 필드의 결과는 실행 후 "shipName"이됩니다.
메시지를 올바르게 초기화하지 못했습니다. 아니면 여기서 다르게해야합니까? 코딩 된 스트림에서 메시지를 일련 번호로 만들 때 예상되는 메시지가 표시되지만 수동 작성이 현재 수행하려고 시도하고있는 것과 작동하지 않는 것 같습니다.
감사합니다.
실제로'stats' 란 무엇입니까? 문제를 진단 할 수있는 충분한 정보를 제공하지 않으 셨습니다. [MCVE]를 게시하십시오. –
통계는 불행히도 문제가되지 않는 데이터 구조입니다. 할 수있는 일 : server :: player :: Connected connectMessage; connectMessage.set_name ("clientName"); connectMessage.set_pid ("clientId"); connectMessage.set_scolor ("shipColor"); connectMessage.set_sname ("shipName"); connectMessage.set_xloc (0); connectMessage.set_yloc (0); connectMessage.set_zrot (0); 이며 연결 메시지의 각 문자열 결과 문자열은 실행이 끝나면 "shipName"이됩니다. – m11hut
[추가 정보 추가] (http://stackoverflow.com/posts/39928885/edit) 질문하시기 바랍니다! –