본문 바로가기

category

런타임 라이브러리 변경 한 솔루션에 여러개의 프로젝트를 종속성을 가지고 실행시키는 상황에서 헤더에 중복된 변수를 모두 제거했음에도 LNK2005 에러가 마구나면서 LINK : warning LNK4098: 'MSVCRTD' defaultlib가 다른 라이브러리와 충돌합니다. /NODEFAULTLIB:library를 사용하십시오. 이런 류의 오류가 난다면 위 스크린샷 처럼 런타임 라이브러리를 모두 같은것으로 바꿔주자MTd 혹은 MDd로 모든 프로젝트를 바꾼 후 실행하여 보면 된다. 더보기
함수 포인터 색다르게 사용하기 #include #include // new 쓸라고 인클루드함.. new가 편해서 struct a { int k1; int k2; int k3; int k4; int k5; }; // int형 변수를 받는 test1 void test1 (void* p) { int i = *((int*)p); printf("%d\n", i*10); } // 구조체를 받는 test2 void test2 (void* p) { a* pIn = (a*)p; printf("%d\n", pIn->k4); } // void를 리턴하고 인자로 void* 를 받는 것을 testr로 typedef 한다. typedef void (*testr)(void* p); void main(void) { a i; i.k1 = 3; i.k2 = 2; i.. 더보기
색상 입히기 다이렉트x 색상 함수로는 DWORD로 정의된 D3DCOLOR가 있다.D3DCOLOR은 네개의 8bit 로 나누어 각각의 8bit당 색상의 진하기를 저장한다.( 알파값 | 빨강값 | 초록값 | 파랑값 ) 으로 구성되어진다. D3DXCOLOR_ARGB( 255, 255, 0, 0 ); // A R G BD3DXCOLOR_XRGB( 255, 0, 0 ); // 알파값을 넣을 필요 없다. 이는 16진수로 간단히 표현할 수 있는데 다음과 같이 설정할 수 있다.0x ff ff ff ff 첫번째 0x는 16진수를 뜻한다. 첫번째 ff는 알파값, 두번째 ff는 빨강값, 두번째 ff는 초록값, 세번째 ff는 파랑값을 뜻한다.즉 ARGB이다. 색상별 표현은 아래와 같다.0xffff0000 = 빨강0xff00ff00 = 초.. 더보기
인덱스 버퍼(Index Buffer) / 버텍스 버퍼(Vertex Buffer) Dxd9를 사용하며 제가 용책이라 불리는 책을 공부한 내용입니다. 소스코드는 제일 밑에 있습니다.쉐이더를 사용하지 않은 버전입니다. 쉐이더를 통한 버전은 나중에 다시 올리겠습니다. 버텍스 버퍼 = 점들의 위치를 저장한 것이라 보면 된다. ( 0, 0, 0 ) ( 1, 1, 0 ) 같은 버텍스를 가지고 있는 주머니인 것이다. 인덱스 버퍼 = 말 그대로 인덱스 데이터를 보관하는 주머니다. 인덱스를 사용하는 이유 - 인덱스를 사용하지 않고 그리려면 중복되는 점도 또 저장해 줘야 한다. 하지만 인덱스를 사용하면 ( 1, 0. 2 ) 같은 버텍스를 저장하는 대신 몇번째 점 인지만 숫자 하나 써주면 되기 때문에 효율적이다.※ 인덱스 순서는 되도록 시계방향으로 하도록 하자. - 컬모드로 매쉬의 앞 뒤를 구분할때 시계.. 더보기
윈도우7 EFI & USB 3.0 으로 설치 윈도우7에는 USB3.0 드라이버가 없어서 설치하는데 꽤나 짜증납니다..특히나 저같이 모든 포트가 3.0인 사람은 더 짜증나죠...-_- 재료1. 윈도우7 순정 윈도우7 설치 디스크에 efi\microsoft\boot 가 저런식으로 되어져 있어야 합니다. 2. 윈도우7 64비트 efi 부트로더 bootx64파일 밑에 다운로드 3. 윈도우포럼 입니다님이 만드신 간편한 스크립트파일 위 세가지를 모두 다운받으신 다음에 시작하도록 합니다. USB 설정 USB는 울트라iso를 사용하시던 diskpart를 사용하시던 다른 시디굽는 프로그램을 사용하시던지 해서 FAT32포멧으로윈도우7 설치 USB로 만듭니다. 윈도우7 설치 USB가 FAT32포멧으로 된 USB에 복사되었다면, 이제 USB로 들어가 efi\micros.. 더보기
ssd 용량 심볼릭 링크(mklink)로 크게 사용해 보자. 윈도우를 설치용으로 용량이 적은 ssd를 쓰고계시거나 ssd 용량이 부족하여 고민이신분들에게 좋은 팁 입니다.다음은 ssd 용량을 최대한 줄이고 다른 하드디스크에 파일을 복사하기 위한 명령어 입니다. 우선 윈도우 시디를 넣으시고 시디로 부팅합니다. 콘솔창만 띄우시는쪽으로 부팅 하셔도 됩니다.왜 귀찮게 바로 관리자 cmd로 안하고 이렇게 하냐구요? 보통 옴기실 폴더가 윈도우에서 현재 사용하지 않는다면 상관없습니다만..용량이 큰거 보통 Program Files이죠? 이건 현재 윈도우에서 사용하고있거든요.. 그래서 이렇게 해주셔야합니다. 명령 프롬프트 사용( 이름이 기억잘 안나네요 대충 이럴껍니다. ) >> 시디 부팅하신분들은 설치 모드 들어왔을때 shift + f10을 눌러 콘솔창을 띄운 후 robocopy.. 더보기
error LNK2019: unresolved external symbol __imp__timeGetTime@0 referenced in function 1>------ Build started: Project: dx초기화, Configuration: Debug Win32 ------ 1> d3dUtility.cpp 1> d3dInit.cpp 1> Generating Code... 1>d3dUtility.obj : error LNK2019: unresolved external symbol __imp__timeGetTime@0 referenced in function "int __cdecl d3d::EnterMsgLoop(bool (__cdecl*)(float))" (?EnterMsgLoop@d3d@@YAHP6A_NM@Z@Z) 1>d3dUtility.obj : error LNK2019: unresolved external symbol _Direct3DCre.. 더보기
익스프레스 캐시(캐쉬) (Express Cache) 사용법 익스프레스 캐쉬는 24gb 정도의 용량이 작은 ssd를 캐쉬로 사용하는 방법입니다. 큰것도 가능ZENBOOK 사용자를 예를 들어 설명하겠습니다.본래는 적용되어져 있지만, 아주 싹 깔끔하게 포멧하신분들은 다시 적용시키는 법을 몰르셔서 쩔쩔매실지도 ㅠㅠASUS.COM 홈페이지에 가셔서 해당 노트북 을 검색하신후 유틸리티쪽에 Express Cache 라는것이 있을겁니다.이것을 다운받고 설치합니다.Express Cache가 설치된 폴더를 잘 보셔야 합니다.( 제 경우에는 C:\Program Files\Condusiv Technologies\ExpressCache 에 설치되었습니다. )관리자로 실행된 콘솔창을 엽니다.그곳에 Express Cache 가 설치된 경로로 cd\Program Files\Condusiv .. 더보기
다른 운영체제 부트로더를 인식하지 못 할때 제가 현재 사용하는 노트북은 ZENBOOK UX52VS CN008H 이며 이 글을 쓰게 된 이유는 SSD 펌웨어 업데이트를 위해 부팅 USB를 만들고 SSD 펌웨어 업데이트로 부팅을 하려 했지만 계속해서 윈도우8로 들어가거나 아에 부팅USB를 인식 못 하더군요...그래서 찾은 해결법 입니다. 리눅스나 다른 OS로 인스톨하시려는데 인식이 안되시거나 하시는분들도 유용할 것 같습니다.우선은 CMOS로 들어갑니다 에이수스 노트북은 F2를 눌러주세요. ASUS CMOS 메인화면입니다. 여기서 BOOT메뉴로 가주세요. 다른 노트북들도 BOOT에가면 비슷한 메뉴가 있을거에요Launch CSM을 사용함으로 해줍니다. 바뀐화면다른거는 안건드리셔도 됩니다.이제 Security 메뉴로 가주세요 Secur Boot Contr.. 더보기
상태패턴을 활용한 Game Scene 변경 매니져 - 2 상태패턴 씬 매니져cSceneMgr.h #pragma once #include "cScene.h" #include "cGame.h" #include "cIntro.h" #include "cMenu.h" // 씬을 다 인클루드 본래는 헤더파일에서 이렇게 참조해대면 안좋습니다. 웬만하면 cpp에서 참조하도록 짤것 enum Scene_State // 씬상태를 표시할 enum { INTRO, MENU, GAME }; class cScene_Mgr { private: cScene_Mgr(void); staticcScene_Mgr*m_cScene_Mgr_Inst; //씬매니져 싱글톤을 위한 클래스 포인터 변수 CScene*m_pcScene; Scene_Statem_RsvScene;// 변경될 씬 예약 Rsv = R.. 더보기