코드를 요로코롬 짜버리면 어쩌자는거야!!!

베트남쪽이랑 열심히 하다가 모두 이쪽으로 이관되었는데, 특정 메서드에서 값이 모두 0을 뱉어내길래 봤더니만…

저도 자바는 할 줄도 모르면서 하고 있습니다만…

다음 구문이 안된다는것쯤은 알고 있습니다.

  System.arraycopy(_buff, 0, Bytes.toBytes(flag,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 4, Bytes.toBytes(StartPos.x,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 8, Bytes.toBytes(StartPos.y,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 12, Bytes.toBytes(EndPos.x,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 16, Bytes.toBytes(EndPos.y,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 20, Bytes.toBytes(ViaNum,Global.USE_BIGENDIAN), 0 , 4);

c의 strcpy나 memcpy는 다르게 이녀석은 src가 앞에가고 dst가 뒤에가잖습니까…

그런데, java는 잘 모르는제가 어쩌겠습니까… 한참 뒤져보고 다음으로 수정…

  flag = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  StartPos.x = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  StartPos.y = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  EndPos.x = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  EndPos.y = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  ViaNum = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);

되는구나…(Bytes클래스는 베트남에서 만들어서 보내준거입니다.)

ㅡㅡ; 음… 심오하구나… 프로그래밍이라는건…

Leave a Comment

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.