DirectShow Build하기

이미지
DirectX SDK 8.1에 있는 DShow를 기준으로 합니다. 빌드에 사용한 Visual Studio는 2008이고 OS는 Window7 64bit 입니다. DirectX SDK 8.1 다운로드 DShow는 DXSDK\samples\Multimedia\DirectShow\dshow.dsw 를 불러오면됩니다. BaseClasses를 시작 프로젝트로 잡고 빌드하거나 해당 프로젝트만 빌드를 시도합니다. 에러1 1>------ 빌드 시작: 프로젝트: BaseClasses, 구성: Debug Win32 ------ 1>컴파일하고 있습니다... 1>dllentry.cpp 1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(290) : error C2146: 구문 오류 : ';'이(가) 'PVOID64' 식별자 앞에 없습니다. 1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(290) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. 1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(8992) : error C2146: 구문 오류 : ';'이(가) 'Buffer' 식별자 앞에 없습니다. 1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(8992) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. 1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(89...

error LNK2019

error LNK2019: "public: bool __thiscall GameState::State::IsInit(void)const " (?IsInit@State@GameState@@QBE_NXZ) 외부 기호(참조 위치: "public: virtual void __thiscall GameState::GameStateManager::Terminate(void)" (?Terminate@GameStateManager@GameState@@UAEXXZ) 함수)에서 확인하지 못했습니다. 흔히 error LNK2019는 정말 해당 함수등을 제대로 정의나 선언을 못하거나 혹은 참조를 못했을 때 발생합니다만, 아무리 살펴봐도 잘 되있는데도 링크에러가 발생하더군요. 프로젝트를 리펙토링 하던 과정에서 FSM의 State 클래스와 GameState의 State 클래스가 있었는데 리팩토링 전에는 다른 모듈에 있어서 잘 되었지만 프로젝트를 합치면서 중간 build 파일인 obj 파일이 같은 이름이라 충돌이 일어나더군요. 그래서 namespace FSM과 namespace GameState로 namespace를 써가면서 사용해 왔었는데도 무용지물이네요. 같은 프로젝트 안에는 파일명이 같은 건 없도록 해서 해결했습니다.

error C2243: '형식 캐스팅' ... 변환이 있지만 액세스할 수 없습니다.

error C2243: '형식 캐스팅' : 에서 (으)로의 변환이 있지만 액세스할 수 없습니다. 라는 에러메세지는 클래스 상속부분에서 발생합니다. class B : A { ... }; 이런식으로 혹여나 public등을 빼먹고 상속을 하지 않았는지 확인합니다. public가 빠지고 클래스명만으로 상속 처리를 하게되면 기본적으로 private로 되서 에러가 발생한 듯합니다.

맥북 상태가 메롱이면 일단 PRAM(피램) 소거 해보자.

얼마전 맥북 상태가 메롱 이었는데 피램 소거를 해줬더니 잘 버티고 있습니다. 맥북에 전원을 넣고 command + option + p + r 키를 누르고 있으면 피램이 소거되면서 맥이 재부팅을 합니다. 이때 손을 떼면 됩니다. 만약 일반 usb 키보드를 연결했다면, 윈도우키 + alt + p + r이 되겠습니다. 일단 방법은 위와 같고, 보통 사용자가 설정한 여러 데이터를 기억하고 유지하는 기능을 하는데 반대로 이게 문제를 발생시키는 경우가 있다고 합니다. 이때 피램을 소거 해주면 많은 문제들이 해결 될 수 있다고 하네요. 모, 시스템 에러와의 상관관계는 아직 밝혀진 바가 없다고는 하는데 모든 시스템 문제 해결의 첫 단계라고들 하니 해도 손해볼 건 없겠죠. 또 말썽을 부리면 피램소거 또 해줘야겠네요. 아래와 같은 것들이 소거 된다고 합니다. AppleTalk 상태 알람시간 설정 응용프로그램 폰트 시리얼 프린트 위치 오토키 비율 오토키 지연 스피커 볼륨 경고 사운드(삑삑...) 더블클릭 시간 커서 깜빡임 비율 마우스 속도 시동 디스크 모니터 재생 빈도, 해상도, 색깔수 32비트 번지 지정 가상 메모리 램 디스크 디스크 캐시 최근에 일어난 커널패닉 정보 DVD 지역코드

CEGUI+Exception+MD+Binary SDK+bootstrapSystem+scheme

이미지
CEGUISampleHelper에 있는 어플리케이션 class 다 필요없이 간단하게 각자의 게임에 CEGUI연동을 할 때 혹 위와 같은 에러가 발생하신 적은 없나요? 일단 전 CEGUI Binary SDK 버젼이고 따로 source를 빌드해서 쓰진 않고 있습니다. 그리고 MD, MDd 환경이구요. this->pD3DRenderer = &CEGUI::Direct3D9Renderer::bootstrapSystem( pD3dDevice ); 부분에서 발생을 하더군요. http://www.gamedev.net/topic/585846-cegui-with-directx-90/  를 참고삼아 CEGUI_TRY로 체크를 해봤습니다. 그랬더니   위와 같은 DLL이 필요 에러를 뿜더군요. CEGUI의 bin 폴더에서 해당 dll들을 찾아 client 폴더에 복사를 해주고 실행하면 일단 넘어갑니다. SchemeManager::getSingleton().create("TaharezLook.scheme"); 다음으로 scheme를 지정해 주는 부분에서 또 Exception이 발생하더군요. CEGUIFalagardWRBase_d.dll을 복사해 주면 실행 됩니다.

MacBook 상태메롱+맥북 하드웨어 테스트+Failure code:4SNS/1/40000001: TB1T-0.000

이미지
얼마전부터 맥부기가 아예 먹통이 되는 현상이 발생했습니다. 그래서 일단 카페에서 검색해보니 애플 자체 하드웨어 테스트 기능이 있다고 해서 저도 시도해 봤어요. 1. 맥부기를 살 때 받은 시디중 OS시디 말고 Application Install DVD를 넣고 시스템을 재부팅 합니다. 재부팅 때 'D'키를 누르고 있으면 됩니다.  2. 시디를 넣고 d 키를 누르고 있으면서 부팅을 하면 Apple Hardware Test가 진행이 됩니다.  3. 테스트 버튼을 누르면 하드웨어 테스트를 수행합니다.  4. 테스트중~  5. 7분정도 테스트 후 결과가 나왔습니다. 에러코드가 4SNS/1/40000001:TB1T-0.000 이네요. 흑 역시나 문제가 있긴 있나봐여 ㅜ.ㅜ  6. 혹시나해서 확장 테스트 들어갔습니다. 이것도 1시간 좀 넘게 걸렸는데 결과는 마찬가지... 애플센터에 가기전에 일단 구글링에 들어갔습니다. 한국어 페이지는 하나도 없더군요. 네이버 카페에서도 검색해보면 관련 에러코드에 대한 내용 조금과, 자꾸 멈추는 현상이 있으신분들이 많이 있으시던데, 새로 산 맥북이나 몇달 지난 맥북 상관없이 나타나는 듯 하더군요. https://discussions.apple.com/thread/1791371?start=0&tstart=0 http://macosx.com/forums/archive/t-316604.html http://www.macuser.de/forum/f21/apple-hardware-test-477520/ http://www.foromac.com/viewtopic.php?f=2&t=13261 전부 해외 사이트라 구글 번역으로 확인해보니 대체적으로 베터리쪽 문제라고들 하네요. 맥북 종료 후 전원코드, 베터리 제거 5초 동안 전원 단추 누르고 뗌 베터리 장착, 전원 코드 연결 전원 ON 위와 같은 설명이 ...

구글 코드에 프로젝트 호스팅 하기

이미지
개인적으로 진행할 프로젝트를 위해 구글 코드를 사용하려고 합니다. 원래는 윈도우 프로젝트 필수유틸리티   책을 보면서 svn, trac, cruise control등을 하나하나 개인 PC에 적용해보면서 할려고 했습니다만, 시간 관계상 개인 PC에 적용은 패스하고 나중에 회사에나 ㅎ; 무료 SCM으로는 소스포지 도 있지만 모든 것을 구글로 하고 있기에 SCM도 구글을 선택했습니다. 또 요즘 대세? 이기도 하구요. 구글 코드는? 첫 번째로, 1GB의 저장 호스팅 저장 공간이 무료입니다. 두 번째로, 단순 코드 저장 기능을 떠나 이슈 트렉커와 위키페이지등도 지원해줍니다. 마지막으로 2009년부터 구글 코드는 분산형 버전 콘트롤인 Mercurial을 지원합니다. 추후 분산형 버전 콘트롤 시스템( DVCS )에 대해서도 정리 해봐야겠네요. 진행 예정인 프로젝트를 크로스 플랫폼 지원을 생각하고 있습니다. 개인PC에 설치된 Windows든 MaxOSX든 간에 종속된 버전관리 시스템은 별로라고 생각이 들었구요, 그래서 무료이고 웹이라 그 어떤 OS에서 접근과 프로젝트 호스팅이 가능한 구글 코드를 선택했습니다. 프로젝트 호스팅 하기 1. 구글 코드 사이트 로 이동합니다. 2. 메뉴 왼편 밑부분의 프로젝트 호스팅을 누릅니다. 3. 오픈소스 프로젝트 검색을 누릅니다. 4. Create a new project를 누릅니다. 5. 생성 할 프로젝트 이름, 요약, 설명등을 설정합니다. 이름은 소문자로 해야합니다. 6. SVN과 머큐리얼 중 버젼 컨트롤 시스템을 선택하시고, 프로젝트 소스 코드 라이센스를 설정합니다. 7. 프로젝트 라벨을 붙여줍니다. 블로그의 태그와 같은 개념으로 검색할 때 쓰입니다. 8. Create project 버튼을 눌러 생성합니다. 생성이 완료되었습니다. 생성 후 프로젝트 홈화면 입니다. Source탭을 누르게 되면 SVN 주소 확인이 가능합...