분류 전체보기 (32) 썸네일형 리스트형 G 파일, .g 확장자, ".g" 를 언패킹(추출) 하는 법 (정확히는 eastward 의 스크립트(대사) 추출) eastward 예로 들어 보겠습니다. 1. QuickBMS 설치 https://aluigi.altervista.org/quickbms.htm Luigi Auriemma aluigi.altervista.org 에서 최상단 파란색의 문장을 클릭하여 QuickBMS 를 다운 받습니다. zip 을 압축풀기하면 다음과 같습니다. 2. 해당 게임 혹은 게임 엔진 스크립트 가져오기 https://aluigi.altervista.org/quickbms.htm Luigi Auriemma aluigi.altervista.org 에서 밑으로 스크롤을 내리다 보면 My scripts: 항목이 있습니다. 그 리스트에서 추출하고자 하는 대상을 찾습니다. Eastward G. 가 있군요 클릭해서 다운받습니다. eastward_g.. visual studio 프로젝트 폴더 이동 이후 솔루션에서 프로젝트 인지 못함 해결 (솔루션에서 프로젝트 인지 못함, MSB4025, C1083) 문제 : 프로젝트 폴더를 이동 후 솔루션이 프로젝트를 찾지 못함 결론 : .sln 파일을 메모장으로 열고 프로젝트 경로(작업 디렉토리 경로)를 직접 수정. 아래의 구조와 같이 하나의 솔루션 안에서 여러 개의 프로젝트를 실시할 경우가 종종 생깁니다. 솔루션 - 프로젝트(windows 데스크톱 애플리케이션 (이하 Client)) - 출력 디렉토리( debug, release) - 프로젝트(정적 라이브러리) - 출력 디렉토리( debug, release) - 프로젝트(동적 라이브러리) - 출력 디렉토리( debug, release) 저는 이것을 프로젝트 끼리 묶고 출력 디렉토리 끼리 묶어서 관리하고 싶었습니다. 따라서 다음과 같이 구조를 변경하였습니다. 솔루션 - 실행파일(폴더명 : OutputFile) - .. 복사 생성자 (Copy Constructor) class CSample { private: int num1; int num2; public: void ShowSampleData() { cout Win32 API 오류 - warning C4819 : 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오. 다음과 같은 경고가 뜬다면 1. 경고가 뜨는 파일들을 visual studio 로 연다. 2. 파일 -> 다른 이름으로 저장 클릭 3. 그럼 이렇게 뜨게 되는데 저장의 드롭박스를 보면 인코딩하여 저장 클릭 이런 경고문이 뜬다 예 클릭 필자의 경우 유니코드 (서명 없는 UTF-8) - 코드페이지 65001 로 되어있었다. 인코딩 드롭박스에서 유니코드 (서명있는 UTF-8) - 코드 페이지 65001 로 변경 후 확인 나머지 파일들도 똑같이 한뒤에 다시 프로젝트를 키고 디버깅혹은 빌드를 해보자 끝 Win32 API - SINGLETON(싱글톤) 1. singleton의 개념 해당 클래스가 생성할 수 있는 개체(인스턴스)를 한 개로 제한하는 디자인 패턴 구현 방법 - 힙 메모리 영역(동적할당)을 이용한 구현 - 데이터 영역을 이용한 구현 - 템플릿 프로그래밍을 이용한 구현 2. 폴더 구조 정리 해당 프로젝트에 engine폴더 생성 및 engine 폴더 하위 폴더로 header폴더와 core 폴더 생성 - Core 클래스 생성하고자 하는 하나의 객체의 자료형이 되는 클래스 2. 데이터 영역을 이용한 구현 -> 정적 맴버 함수 안에 정적 맴버 변수의 객체를 생성하고 그 주소 값을 반환한다. ( 정적 맴버 함수 밑 정적 맴버 변수는 아래에 설명) -> 이 때, core1 은 데이터 영역에 존재 하므로 프로그램이 끝날 때까지 사라지지 않는다. 즉 Get.. Win32 API - 마우스 입력 1. 마우스 입력시 발생 메세지 마우스를 클릭하면 마우스가 클릭된 위치나 조랍키의 상태 등의 부가 정보가 메세지와 함께 프로시저로 전달된다. WndProc 의 매개변수 WPARAM과 LPARAM에 부가 정보가 담긴다. 이때 두 매개변수는 WORD의 구조체이다. 4byte 로 이루어져 있고, 상위 2bytes는 HIWORD, 하위 2bytes는 LOWORD이다. 마우스의 위치 정보는 LPARAM의 HIWORD에 Y좌표, LOWORD 에 X좌표가 담겨 윈도우 프로시저로 전달된다. wParam에는 마우스 버튼의 상태와 키보드 조합키의 상태가 전달된다. 상태값 들의 비트 연산을 통해 여러 개의 조합키가 눌려도 윈도우가 인식하고 옳바른 처리를 할 수 있다. 2. 곡선 그리기 마우스를 이용해 그림을 그리는 프로그램.. Win32 API - 키보드 입력 Win32 API 의 장점 중 하나는 멀티 태스킹 환경을 지원한다는 것. 입력이 들어오면 포커스(입력 초점)을 가진 프로그램에 키보드 메세지를 보내게 되고, 프로그램은 키보드 메세지를 받아 입력을 처리한다. -> 포커스를 가진 컨트롤만 키보드 입력을 받을 수 있고, 이와 관련한 메세지도 포커스를 가진 컨트롤에게만 전달. 포커스 : 입력 초점(입력이 들어올것 타이핑시 문자 입력 초점에 커서가 깜빡이는 것 등) 컨트롤 : 인터페이스를 통해 사용자로부터 명령과 입력을 받고 출력 결과를 보여주는 과정속 사용되는 입출력 도구(메세지 박스, 버튼 등 사용자와 상호작용하며 입출력하는 것) 1. 키보드 입력 TranslateMessage 함수를 통해 문자 정보를 확인해 WM_CHAR 메세지로 변환해서 DispatchM.. Win32 API - 메세지 박스 출력 1. WM_LBUTTON 메세지 왼쪽 마우스가 눌린( 떼거나 움직이는것은 다른 메세지) 경우 발생하는 메세지. WM_LBUTTON 메세지가 발생하면 MessageBoxW 함수를 통해 메게지 박스(팝업창)을 띄우게 하였다. 2. MessageBoxW() - hWnd : 메세지 박스의 부모 윈도우 ( -> 메세지 박스 (팝업창) 은 자식 윈도우 이다. ) - lpText : 메세지 박스 안에 출력할 문자열 - lpCaption : 메게지 박스 타이틀에 출력할 문자열 - uType : 메세지 박스의 종류 - 반환형 int : 이는 사용자가 어떤 버튼을 눌렀는지 인지해야 그에 맞는 대처를 할 수 있기 때문. 해당 반환값을 변수에 저장해 놓고 있다가 조건문 등을 활용해 그에 맞는 대처를 할 수 있다. 2-1 uT.. 이전 1 2 3 4 다음 목록 더보기