버그 해결을 위한 모든 질문을 던져
0 votes
95 views

안녕하세요 처음으로 질문을 올려봅니다.

 

우선 기본적으로 현재 제 프로젝트 구조에 대해서 말씀드리자면 

CoreNet : 기본적인 Network관련 lib

MmoCore : CoreNet을 참조하며 mmo game에 쓸 공용 Packet의 자식 클래스 및 공용 클래스를 갖는 lib

Unity Client : CoreNet, MmoCore의 dll을 plugins 폴더에 넣고 활용.

 

현재 해결이 안되는 문제는 아래와 같습니다.


//MmoCore의 MMoPacket이라는 class의 함수.
void SerWrite()
{
//NetStream ns, PACKET_TYPE _pt : MmoPacket의 변수
//ns : 단순 custom stream
//PACKET_TYPE : CoreNet 에 정의된 Enum 
 Translate.Write(ns, _pt);
}

//Unity Sccript

void Start()
{
 NetStream ns = new NetStream();
 PACKET_TYPE pt = PACKET_TYPE.REQ;

 // non exception
 Translate.Write(ns, pt);

//child of MmoPacket class [HelloReq 역시 MmoCore lib내에 정의된 packet]
 HelloReq tmp = new HelloReq();
// unity throw InvalidCastException
 tmp.SetWrite();
}

 

stream에 packet type을 기록하는 함수를 직접 호출 시 문제가 없으나, 

SerWrite를 통해 호출을 하면 InvalidCastException 이 발생합니다.

가급적 dll 참조구조를 변경하지 않고 해결할 수 있는지, 또한 왜 exception이 발생하는지 질문드립니다.

asked (2 point)
수정됨 , 95 views

질문에 대한 답변을 하려면 로그인 또는 가입해야합니다.

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

507 질문
655 answers
643 댓글
118,131 users