전체 글 (43) 썸네일형 리스트형 #pragma once(수정필요) 오늘 회사에서 #pragma once때문에 컴파일 에러로 난리가 났어서 정리하는 글 난리가 났던 이유 1. 파일 A는 #pragma once 전처리기와 함께 파일B를 include 하고 있었음 2. (추정) 파일A를 간접적으로 참조하는 파일 C에서도 파일B를 include 3. (추정) #pragma once가 파일A의 include B를 날려버림 4. 컴파일에러가 났지만 비주얼스튜디오는 파일A가 아닌 파일B의 변수D를 원인으로 지목함 (파일A 전혀 지목X) 한 시간 정도... svn 업뎃 받은 모두는 아무 일도 할 수 없었다. include를 전방선언으로 바꿔주니까 문제 해결! Pragma once docs.microsoft.com/en-us/cpp/preprocessor/once?view=msvc-1.. 항목2. 가능한 C++ 캐스트를 즐겨쓰자 C스타일 캐스트를 쓰면 안되는 이유 1. 다른 타입으로 생각없이 바꾸어 줌 constness 캐스트와 다운캐스트는 완전 다른데 신경쓰지 않고 바꾸어 버립니다 2. 눈이나 프로그램으로 식별하기 어려움 //C스타일 캐스트 double result = ((double)Number)/OtherNumber; //C++스타일 캐스트 double result = static_cast(Number/OtherNumber); C++의 새로운 캐스트 사총사 1. static_cast 2. const_cast 3. dynamic_cast 4. reinterpret_cast 1. static_cast - C스타일 캐스트와 똑같은 의미와 형변환 능력을 지님 - C스타일과 받는 제약도 같음 ex) struct 를 int로 형변환 .. 데디케이트 서버에서 스탯 관리(수정필요) 언리얼에서 제공하는 RPC나 리플리케이션 관련 함수들은 클라이언트에서 데디케이트서버로 직접 데이터를 전송한다. 하지만 그렇게 하면 Transient한 전송이기도 하고, 검증할 수 없기 때문에 스탯과 같은 유로컨텐츠는 신뢰할 수 있는 검증을 거쳐야 하기 때문에 "게임서버"를 반드시 거쳐야 한다. 대부분의 Receiver들은 CD 혹은 CG이지만 DedicatedReceiver에서는 GD 프로토콜을 관리하기 때문에 스탯, 아이템 관련 프로토콜은 해당 리시버에서 관리해줘야 한다. 이전 1 ··· 3 4 5 6 다음