본문 바로가기

ETC

[C++] 기본으로 추가되는 IAT, 모듈을 제외하기 Visual Studio 2019에서 C++ Dynamic-Link Library (DLL) 템플릿으로 프로젝트 생성 Clean Module으로 명명하고, 그대로 빌드 시 빌드에 성공한다. pch.h, frameworks.h를 따라가 보면 windows.h 헤더를 인클루드한다. IDA로 열어보면 내가 사용하지도 않은 함수들과 모듈들이 IAT에 나타난다. 프로젝트 설정을 수정하여 1. windows.h 헤더 인클루드 제외 2. Security Check 해제 3. 사용하지 않는 라이브러리를 포함시키지 않음 4. ep 함수를 지정 조치를 해 준다. 1. 우선 프로젝트의 dllmain.cpp를 제외하고 헤더와 소스 모두 삭제한다. 소스에서도 pch.h를 인클루드하지 않고, 프리미티브 타입을 이용한 함수로 변경.. 더보기
[C#] Enum의 모든 값 가져오기 https://docs.microsoft.com/ko-kr/dotnet/api/system.enum.getvalues Enum.GetValues 메서드 (System) 지정된 열거형에서 상수 값의 배열을 검색합니다.Retrieves an array of the values of the constants in a specified enumeration. docs.microsoft.com 사용자가 정의한 Enum을 모두 가져와 루프를 돌고 싶을 때가 있다. Enum.GetValules(Type type) 메서드를 이용해 배열로 받아 올 수 있다. foreach를 사용하는 경우 해당 타입으로 public enum EGameState { None, Wait, PreBattle, InBattle, PostBatt.. 더보기
ASP.NET Core: 1. CORS 문제 해결 임시방편으로 로컬에서라도 동작하게 구현했습니다. public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void Con.. 더보기
언리얼 vs 유니티: 4. 사용하는 프로그래밍 언어 게임 회사에 자리잡고 계신 꽤 많은 게임 개발자들은 c와 c++을 시작으로 프로그래밍에 입문했을 것입니다. 상용엔진이 보편화 되기 전에는 대부분 c나 c++을 이용한 자체엔진으로 게임을 만들어왔고, 프로그래밍 언어의 기초라는 이유도 한 몫 했을 것입니다. 2010년대에 들어 c# 언어를 사용하는 유니티가 널리 사용되면서 처음 배운 언어가 C#인 게임 개발자 분들도 많이 늘어났습니다. c나 c++에 비해서는 조금 쉽게 배울 수 있고 개발이 빠를 수 있다는 점이 매력적입니다. 근래에 들어서는 암호화폐를 등에 업은 GPU 성능의 발달이 눈에 띄었습니다. 알파고의 유명세와 함께 머신 러닝Machine Learning 과 빅 데이터 분석 분야의 인기로 Python 부터 시작하신 개발자들도 서서히 자리잡고 있습니다.. 더보기
언리얼 vs 유니티: 3. 에셋 참조 방식 에셋 간에도 의존성이 존재합니다. 유니티의 머티리얼은 사용되는 텍스쳐들의 주소를 알고 있어야 하고, 메쉬역시 머티리얼의 주소를 알고 있어야 합니다. 언리얼과 유니티는 이 과정에서 다른 컨셉을 갖고 있습니다. 쉬어가는 느낌으로 간단히 알아보겠습니다. 유니티 유니티는 에셋을 참조할 때 guid를 사용합니다. 프로젝트 설정의 에디터 파트에서 Serialization을 Text 모드로 사용하게 되면, meta 파일을 텍스트 편집기로 열 수 있습니다. 매우 정직하게 guid: xxxx... 로 표기되어있습니다. 이 메타파일은 텍스쳐의 메타입니다. 이 텍스쳐를 사용하게되면, 이 guid를 저장하게됩니다. 예를 들어 이 텍스쳐를 사용하는 RawImage 컴포넌트가 있는 씬을 텍스트 편집기로 열어보면 이 guid를 발.. 더보기
언리얼 vs 유니티: 2. 에셋 관리 방식 게임을 만들기 위해서는 다양한 리소스가 필요합니다. 캐릭터 모델링 메쉬, 모델링의 겉모습을 표현해 줄 텍스쳐, 리깅 된 모델링을 움직여 줄 애니메이션, 글자를 그리게 해 줄 폰트 등등. 이들은 게임엔진에서 사용하려면 일련의 과정을 거쳐야만 합니다. 복잡한 과정들을 간단히 요약하자면, 범용적으로 통용되는 파일 포맷으로 저장된 데이터들을 엔진에서 메모리에 로드 가능한 형태의 에셋으로 변환해주는 작업들입니다. 프로젝트가 개발중인 단계에서는 로딩 속도나 수정, 개발 사이클과 관련해 어떻게 전략을 수립할 것인지가 마일스톤 일정을 맞추는 데에 비중있는 역할을 차지하기도 합니다. 유니티 에셋을 프로젝트에 임포트하더라도 원래의 파일을 그대로 유지하고있습니다. 이미지 파일 포맷인 PNG, TGA, BMP 등을 프로젝트내.. 더보기
언리얼 vs 유니티: 1. 우열을 가리기보다는 작업상 차이점을 중심으로 유니티와 언리얼의 기능과 사용 방법, 철학을 비교해봅니다. 파트별로 나누어서 시간이 될 때 마다 소소하게 작성할 예정입니다. ​ 우열을 가리려는 것이 아닌 기능상의 비교, 타 엔진으로 넘어갈 때 유의해야 할 사안 등을 중점적으로 기술합니다. 저는 두 엔진 모두를 다루어보긴 했지만 깊게 파고들지는 못했습니다. ​ 이 시리즈를 만들어가면서 깊이있는 숙련도를 얻고 싶네요. 더보기
문제해결: 2. 파일 이름이 너무 깁니다 삭제 방법 파일을 지우려고 했는데, 안된다고 하네요. 제가 삭제하고 싶은 경로는 C:\Workspace\ML\DQN 이었습니다. 윈도우키 + R을 눌러 실행 대화상자를 열고, CMD를 실행합니다. 그리고 지울 파일이 있는 경로로 이동합니다. 저는 타겟이 C:\Workspace\ML\DQN 이어서 C:\Workspace\ML로 이동했습니다. 지울 대상의 한 단계 위 디렉터리로 이동하면 됩니다. cmd 창에서 입력합니다. > cd C:\Workspace\ML > mkdir abc robocopy abc DQN /s /mir rmdir abc rmdir DQN 이렇게 입력해주면 삭제됩니다. abc는 임의의 이름이며, 통일해서 사용해주기만 하면 됩니다. 다만 기존 경로에 abc라는 이름의 파일이 존재하면 안됩니다. 더보기