2011의 게시물 표시

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(8992) : error C4430: 형식 지정자가 없습니다. int로 …

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 주소 확인이 가능합니다. 주소가 2가지가 있는데요, https를 통한 보안 접근은 프로젝트 멤버들이 커밋 권한을 가지고 접근할 때 쓰이는 주소이고, 그냥 …

Component Based Programming+레고(LEGO)+Message+OOP+상속

이미지
다들 Component Based Game Programming 한 번씩은 해보셨잖아요? 아니, 표정들이 왜그래요? Component Based Game Programming 안 해본 사람처럼? ㅎㅎ;;

프로젝트를 진행하면서 약 3개월간 Component Based Programming를 해보면서 느낀 것들을 간략?하게 정리를 해봅니다.
동심의 세계로 이끌어줄 레고(LEGO) 본격적으로 들어가기에 앞서 레고에 대해서 살짝쿵 살펴볼까 합니다. 덴마크어로 재미있게 놀아라(LEG GODT)라는 말의 첫 음절을 합쳐놓은 말이 레고(LEGO)라고 하네요. 위키백과 가기
아이들의 창의성이나 사고력을 길러주기 위한 교육적인 요소로 레고 블럭을 선물해주고 하죠. 블록을 하나하나 쌓아가면서 만들었을 때의 유쾌, 상쾌감 같은 성취감과 부수었을 때의 허무함, 통쾌감을 느끼게 해주는 우리의 장난감 레고~ 여러가지 우여곡절끝에 탄생한 레고는 시스템을 위한 기본 규칙 10가지가 있다고 합니다. 이것은 한 백화점 관계자가 '시중에 나와있는 아이들 장난감에는 어떤 고차원의 규칙 같은 것이 빠져 있어요.' 라고 말을 해서 이를 들은 레고 사장이 고민 끝에 고안해서 생겨났다고 하네요. 놀이의 가능성이 무한할 것여자아이와 남자아이 모두를 위한 것모든 연령의 아이들에게 맞는 것일년 내내 가지고 놀 수 있는 것아이의 건강과 편안함을 고려할 것적당한 놀이 시간을 지킬 수 있을 것발전, 환상, 창의력을 증대시킬 것더 많은 놀이의 가치를 증폭시킬 것쉽게 보충할 수 있을 것품질이 완전할 것 <

64비트 프로젝트+빌드 생략+Visual Studio 2008

이미지
1>------ 빌드 생략: 프로젝트: xxx ------
1>
2>------ 빌드 생략: 프로젝트: xxx ------
2>
3>------ 빌드 생략: 프로젝트: xxx ------
3>
4>------ 빌드 생략: 프로젝트: xxx ------
4>
5>------ 빌드 생략: 프로젝트: xxx, 구성: Release Win32 ------
5>이 솔루션 구성에 대해 빌드하도록 선택된 프로젝트가 없습니다.
========== 빌드: 성공 또는 최신 상태 0, 실패 0, 생략 5 ==========

64비트 서버에 비쥬얼 스튜디오도 설치했겠다, 서버 모듈을 빌드해줬습니다. 당연히 활성 솔루션 플랫폼을 x64로 선택후 빌드했는데 총 5개의 프로젝트 모두 빌드 생략이 되는거 아니겠어여? ㅜ.ㅜ 또 뭥미....

프로젝트 설정을 보려고 해도 이렇게 에러를 뿜더군요. "작업을 완료할 수 없습니다. 지정되지 않은 오류입니다." ㅜ.ㅜ

구성관리자에서 x64 플랫폼에도 보면 빌드에 다 체크가 되어있습니다.
옵션에서 플랫폼을 보니 왠걸? x64가 있어야 할듯 한데 없네요. 구글링 들어갑니다.
MSDN : Visual Studio 64비트 구성 요소 설치에 보니 x64관련 구성 요소를 설치하려면 전체 설치를 수행하거나 사용자 지정 설치 중에 x64컴파일러 및 도구를 체크하라고 하네요.
일단 Visual Studio 2008 설치를 다시 실행했습니다. 근데 없네요... 했는데...

이런... ㅎㅎ; Visual C++ 밑에 트리에 숨어있었네욤. 보통 Visual Basic등 필요없는거 체크 없애고만 설치해서 저리 밑에 숨어 있을 줄이야 ㅎㅎ;; X64 컴파일러 및 도구 바로 체크해주고 설치 했습니다.

설치 후 옵션에서 확인하니 x64 플랫폼이 있습니다!! 당연히 서버 모듈도 빌드가 잘되구요~ ㅎㅎ; 
클라 개발자가 서버 개발 도전을 하니 요런거에서도 막혀버리네요 ^^;;;

Windows Server 2008 R2에 .NET Framework 3.5 설치하기

이미지
오랜만에 윈도우 서버를 부팅시키고 지정했던 비번을 까먹어서 다시 설치하는 삽질을 한 후 Visual Studio 2008을 설치시켜줬습니다. 그런데 설치 실패를 하더군요. 문제는 .NET Framework 3.5가 설치 안되서 였는데 보통으로는 Visual Studio 설치시 설치해 주는데 서버는 반항을 하더군요.

그래서 MS 사이트가서 설치본을 받아 실행했는데, 이번엔 또 이런 메세지가;;; 설치할려면 역할 관리 도구를 사용하라는데 그게 뭐임?

모든 프로그램 -> 관리 도구 -> 서버 관리자가 있더군요. 실행하고 기능 -> 기능 추가를 해줍니다.

그럼 이렇게 기능 추가 마법사가 뜨면서 맨 위에 .NET Framework 3.5.1이 있고 그거 체크하고 다음 누르시면 설치가 진행이 됩니다.

설치 후 이렇게 확인이 가능합니다. 이후에는 문제없이 Visual Studio 2008이 설치가 되네요.

다음에는 SQL Server 2008 R2 설치해줘야 하는데.. 과연?

아 멀고도 험한 서버 세팅의 길이여...

윈도우 서버 2008R2 설치시 '암호를 업데이트할 수 없습니다'. 라는 오류

이미지
드디어 서버 개발의 첫 스타트를 끈었습니다. 서버 PC를 세팅하고 있는데요, OS는 Windows Server 2008 R2입니다.
스탠다드, 엔터프라이즈, 데이터 센터, 웹서버 이렇게 있고 Core 버젼 설치들도 각각 있던데 일단 Core는 명령 프롬프트만 뜨는 것이라고 해서 일반 풀버젼에 스탠다드로 설치 했습니다.


설치가 다 끝나고 마지막에 암호를 입력하는 부분에서 '암호를 업데이트할 수 없습니다. 새로운 암호로 제공된 값이 길이, 복잡도나 이전 기록과 같은 도메인이 요구하는 조건에 맞지 않습니다.' 라는 메세지기 뜨며 진행이 안된다면 메세지 그대로 암호로 쓰기에는 부적절해서 그렇습니다.

처음 설치하다보니 이런 부분에서 막히는 군요. 구글링 해서 바로 해결할 수 있었는데요. 영문 4개, 숫자2개, 특수문자2개 이상의 문자들이 입력 되어야 비밀번호의 지정이 가능하네요. 역시 서버라 그런가 비번 설정도 간단하게 안 넘어가는군요.

국내명 파랜드 택틱스, 원제 파랜드 사가의 엔딩을 또 한번~

이미지
명작 파랜드 택틱스를 어제인 4월 16일부로 또 한번 엔딩을 봤습니다. 출시 된지 10년도 더 지난 겜이죠. 언젠지 기억은 없지만 예전 학생때 한번 클리어 했었고, 2008년쯤에도 한번 클리어 했던 기억이 있는데 이번 클리어로 인해 3번째 엔딩을 보개 되었습니다. 역시 게임은 시나리오와 스토리를 바탕으로 끝 맺음이 있어 엔딩을 볼 수 있는 패키지 게임을 해야~ 국내에는 파랜드 택틱스가 무척이나 많죠. 1 ~ 5까지 있는데 실제론 파랜드 택틱스 1, 2가 파랜드 사가 1, 2였고 나머지는 다 다른 씨리즈 인데 파랜드 사가 1, 2로 재미를 보고는 같은 씨리즈인냥 출시를 했던거죠.
파랜드 시리즈 위키
Windows95 시절 게임이기 때문에 현 OS인 WindowsXP, Vista, 7에서 실행하는데는 약간의 작업이 필요합니다. 그에 대한 것과 일본음성 패치 내용을 정리 해볼까해요.
0. 용량 부족


위와같이 빈 용량이 부족합니다. 인스톨에는 약 68 M 바이트 필요합니다. 이러면서 설치부터가 안 될수가 있습니다.
오래된 게임인지라 CDRom드라이브를 HDD의 바로 다음에 있을때만 인식 하기 때문인데요.
제어판 -> 성능 및 유지 관리 -> 관리 도구 ->컴퓨터 관리 -> 디스크 관리 에서 파랜드 택틱스 시디가 들어있는 것의 속성에서 드라이브 문자 할당을 첫 메인 HDD다음으로 설정해주면 해결 됩니다.


1. 맞는 CD로 삽입 하세요

게임 설치 후 실행하는데 위 스샷과 같은 메세지가 출력 되는 것 역시 0번과 같은 방법으로 해결 가능합니다.
2. 한글판 CD인데도 불구하고 게임이 일본어로 진행이 될때 제가 가지고 있는 파랜드택틱스1 CD가 한글판 CD인데도 불구하고 첨 실행등 몇몇 부부만 한글이고 나머지는 일본어로 나오더군요. Windows가 XP 이후로 쭉 업데이트 되면서 시스템쪽 폰트와 충돌이 나는 듯 한데요. 따로 이것저것 건들것 없이 첨부하는 최신 게임 패치를 적용하면 됩니다.
파랜드 택틱스 최신 패치 1.09C 받기
설치 경로가 다를 수 있으니 잘 살펴보시…