2009년 12월 18일 금요일

병규돈까스

대전에서 꽤 유명한 집이라는데 얼마 전에 가보게 되었습니다.

가격도 비싸지 않으면서 맛과 양이 매우 만족스럽더군요.

돈까스를 좋아하는 분이라면 한번 가볼만 합니다.

 

병규돈까스는 5,000원, 모듬은 7,000원,

다른건 얼마였는지 기억이 안나네요 ㅋㅋ

 

지도에서 위치보기

 

 

2009년 12월 17일 목요일

한스다이너 - 수제햄버거

얼마 전에 알게된 수제 햄버거를 파는 식당입니다.

엑스포 공원 가는 길에 있는 한스 다이너란 곳인데요,

버거, 스파게티, 볶음밥, 스테이크 등을 파는데

수제햄버거만 먹어봤습니다.

가격이 좀 세긴 하지만 버거 맛은 맘에 들더군요

버거 하나에 대략 6,500 ~ 9,500원 정도 합니다.

 

지도에서 위치보기

 

 

 

2009년 12월 16일 수요일

아이락스 KR-6401 키보드

아이락스 KR-6401 키보드가 출시기념 세일판매를 하길래 하나 질렀습니다.

 

사진을 찍어 올려볼까 했는데 고광택이라 어떻게 찍어도 이쁘게 안나와서 포기했습니다.

 

http://www.i-rocks.co.kr/keyboard/NEW_KR_6401_MAIN.php

 

아이솔레이션 키보드라고 해서 질렀는데, 멤브레인 방식인만큼

기존 아이락스 팬터그래프 키보드보단 약간 뻑뻑한 느낌을 주네요.

그렇지만 가격에 비해 키감은 꽤 괜찮은 편입니다.

 

장점은 키보드가 깔끔하고 가격이 저렴하다는 점입니다.

또한 F1~F12키가 모두 일정하개 배열된 다른 아이솔레이션 키보드들과는 달리

일반 키보드처럼 4개마다 빈 공간이 있어서 F키 오타는 잘 나지 않을 것 같습니다.

 

단점은 키 하나하나의 크기가 약간 작습니다. 손이 크신 분들은 좀 불편하실수도 있겠네요.

그리고 방향키 위의 특수키들의 배열이 일반 키보드 배열과 좀 달라서

delete 키에 적응하는데 애를 먹고 있습니다.

 

일반 키보드와 같은 크기 및 배열로 아이솔레이션 키보드가 나왔으면 좋겠군요. ㅋ

2009년 12월 7일 월요일

윈도우 7 볼륨라이선스 인증 문제

학교에서 윈도우 7 엔터프라이즈를 볼륨라이선스로 배포하여 설치해보았습니다.

 

인증할때 다음과 같이 에러가 나더군요.

 

 

여기저기 뒤져보다가 바이오스 ACPI의 SLIC 테이블이 문제가 되는것 같다고 결론을 내렸습니다.

 

http://www.mydigitallife.info/2007/11/05/invalid-volume-license-key-0xc004f059-or-0xc004f035-error-when-activating-windows-vista-on-oem-computer/

 

 

제 PC는 oem PC가 아니고 제가 직접 조립한 PC인데 에버레스트로 살펴보면 SLIC 테이블이 존재하는 게 보입니다.  OEM PC도 아니고 개조 바이오스를 써본 적도 없는데 왜 SLIC 테이블이 존재하는지 모르겠습니다.

 

저 테이블만 없으면 정상적으로 인증이 될 것 같은데 도무지 해결책을 못찾겠네요. 혹시 아시는분 없으신가요?

 

참고로 제 메인보드는 Asus P5E3, CPU는 Core 2 Quad Q9550 을 사용하고 있습니다.

 

추가글 2010-02-24

SLIC테이블이 존재하는 여러 노트북에도 설치해보았는데

아무 문제 없이 잘 설치가 됩니다. -_-;;;

도무지 제 컴퓨터가 뭐가 문제길래 인증이 되지 않을까요? 흑흑

2009년 11월 23일 월요일

윈도우 7 Open Command Here

윈도우 XP에서 매우 유용하게 썼던 파워토이의 Open Command Here 기능이

그냥 오른쪽 마우스 버튼을 눌렀을 때는 나타나지 않아서 없는 줄 알았는데

검색을 좀 해보니 윈도우 7은 그 기능을 아예 내장하고 있다는 것을 찾았습니다.

Shift + 오른쪽 마우스 버튼 : 여기서 명령 창 열기
Shift + Ctrl + 오른쪽 마우스 버튼 : 여기서 명령 창 열기 (관리자권한)

2009년 11월 17일 화요일

윈도우 7 스티커 메모 활용하기

윈도우 7에 기본 프로그램 중 하나인 스티커 메모는
포스트잇 처럼 바탕화면 여기저기에 붙여두고 쓸 수 있으며,
메모를 직접 지우기 전에는 컴퓨터를 리부팅해도 내용이 지워지지 않습니다.

예전에는 스티키 패드를 사용했는데 윈도우 7으로 오면서는 그럴 필요가 없어졌네요.


위 그림과 같은 단축키를 사용하여 메모를 좀 더 효과적으로 정리할 수 있습니다.

2009년 11월 10일 화요일

Microsoft Office Outlook을 시작할 수 없습니다. Outlook 창을 열 수 없습니다.

윈도우를 새로 깔고 이것저것 설치하다 잘못 설치한게 있어 삭제하다 보니

Microsoft Office Outlook을 시작할 수 없습니다. Outlook 창을 열 수 없습니다.

라는 메시지가 나오면서 아웃룩이 실행되지 않더군요.

별별 짓을 다 해봐도 안되다가 다음과 같이 해결했습니다.

outlook.exe /resetnavpane

아래 블로그에서 참고한 내용입니다.

윈도우 7에서 telnet 사용하기

윈도우 XP까지 cmd 창에서 기본으로 제공하던 telnet 명령어가
윈도우 7부터는 기본설치가 되어있지 않도록 바뀌었습니다.
윈도우 7에서도 텔넷을 cmd를 통해 사용하고 싶다면 다음과 같이 하면 됩니다.

제어판 > 프로그램 > Windows 기능 사용/사용안함

위의 메뉴를 선택하면 다음 그림과 같은 화면이 뜹니다.


빨간색으로 표시를 해둔 Telnet Client 를 선택하고 확인 버튼을 누르면
cmd 창에서 telnet 명령어를 사용할 수 있습니다.

2009년 11월 7일 토요일

Visual C++에서 Xbox360 컨트롤러 제어하기

Visual C++에서 Xbox360 컨트롤러를 제어하기 위해서는 DirectX SDK 가 필요합니다.

DirectX SDK는 아래 링크에서 다운받을 수 있습니다.


XBox 컨트롤러를 사용하기 위해서는 xinput.h 파일을 인클루드 하고, xinput.lib 라이브러리를 추가해줘야 합니다. Win32 DLL 을 만들기 위해서라면 windows.h 도 포함시켜야 합니다.

#include <xinput.h>
#pragma comment(lib, "xinput.lib")

그 이후 아래 코드와 같이 사용할 수 있습니다.
컨트롤러 제어를 해야 하니 아래 코드는 스레드로 만드는게 좋겠습니다.

XINPUT_STATE state;
ZeroMemory(&state, sizeof(XINPUT_STATE)); // 컨트롤러 상태 초기화
DWORD result = XInputGetState(0, &state); // 컨트롤러 상태 얻어오기

while (result == ERROR_SUCCESS) {
// 컨트롤러 제어 코드가 들어가야 함

Sleep(30); // CPU 점유을 100%를 방지하기 위해
result = XInputGetState(0, &state); // 다음 상태 얻어오기
}

컨트롤러 제어 코드는 버튼제어, 진동제어, 스틱제어, 트리거 제어로 아래와 같이 구현할 수 있습니다.

버튼제어는 다음과 같은 방식으로 해결할 수 있습니다.

if (state.Gamepad.wButtons & XINPUT_GAMEPAD_X) {
// X 버튼이 눌렸을때 할 일
}

xinput.h에 정의된 버튼의 상태를 나타내는 매크로는 다음과 같습니다.

#define XINPUT_GAMEPAD_DPAD_UP          0x0001
#define XINPUT_GAMEPAD_DPAD_DOWN        0x0002
#define XINPUT_GAMEPAD_DPAD_LEFT        0x0004
#define XINPUT_GAMEPAD_DPAD_RIGHT       0x0008
#define XINPUT_GAMEPAD_START            0x0010
#define XINPUT_GAMEPAD_BACK             0x0020
#define XINPUT_GAMEPAD_LEFT_THUMB       0x0040
#define XINPUT_GAMEPAD_RIGHT_THUMB      0x0080
#define XINPUT_GAMEPAD_LEFT_SHOULDER    0x0100
#define XINPUT_GAMEPAD_RIGHT_SHOULDER   0x0200
#define XINPUT_GAMEPAD_A                0x1000
#define XINPUT_GAMEPAD_B                0x2000
#define XINPUT_GAMEPAD_X                0x4000
#define XINPUT_GAMEPAD_Y                0x8000

진동은 다음 코드로 제어할 수 있습니다.

XINPUT_VIBRATION vibration;
ZeroMemory(&vibration, sizeof(XINPUT_VIBRATION));
vibration.wLeftMotorSpeed = 65535; // 0 ~ 65535 사이의 수
vibration.wRightMotorSpeed = 0; // 0 ~ 65535 사이의 수
XInputSetState(0, &vibration);

아날로그 스틱의 값은 다음변수에 저장되어 있습니다.

state.Gamepad.sThumbLX // 왼쪽 아날로그 스틱 X축
state.Gamepad.sThumbLY // 왼쪽 아날로그 스틱 Y축
state.Gamepad.sThumbRX // 오른쪽 아날로그 스틱 X축
state.Gamepad.sThumbRY // 오른쪽 아날로그 스틱 Y축

트리거에 해당하는 값은 다음 변수에 저장되어 있습니다.

state.Gamepad.bLeftTrigger // 왼쪽 트리거
state.Gamepad.bRightTrigger // 오른쪽 트리거

2009년 11월 2일 월요일

윈도우 7의 빠른 디스플레이 변경

대부분의 노트북은 Fn + 화면전환 키를 통해 프로젝터나 외부 모니터 출력을 쉽게 바꿀 수 있도록 지원하고 있습니다. 윈도우 7에서는 OS차원에서 이 기능을 지원하고 있네요.

단축키로 윈도우키 + P 를 누르면 다음과 같은 화면이 뜹니다.


프로젝터 뿐 아니라 듀얼모니터를 사용하고 있는 경우에도 해당이 됩니다.

각 기능은 그림 및 설명이 잘 되어있기 때문에 생략하도록 하겠습니다.

2009년 11월 1일 일요일

코드에서 라이브러리 추가하기

비주얼 스튜디오에서 라이브러리를 추가하려면 프로젝트 속성 창을 열어서
일일이 추가해주는 방법이 있지만, 다른 프로젝트에 같은 소스파일을 사용하려고 하면
또 라이브러리를 추가해줘야 하는 번거로움이 있습니다.
이런 경우 소스코드에 라이브러리를 추가해놓는다면 저런 번거로움은 사라지겠죠?

아래 코드를 이용하면 됩니다.

#pragma comment(lib, "라이브러리파일")



문자열 인코딩 변환

ATL의 문자열 인코딩 변환 매크로를 사용하면 문자열 인코딩을 쉽게 변환할 수 있습니다.

char* string = "hello world";
wchar_t* wstring = L"안녕하세요?";

USES_CONVERSION;
wchar_t* wstr = A2W ( string ); // 멀티바이트 -> 유니코드
char* str = W2A ( wstring ); // 유니코드 -> 멀티바이트

이 매크로를 사용하기 위해서는 관련 헤더파일이 인클루드 되어있어야 합니다.
ATL 프로젝트는 따로 할 필요는 없고
MFC 프로젝트나 Win32 프로젝트에서는 다음과 같이 헤더를 추가합니다.

MFC 프로젝트
#include <comdef.h>
#include <afxpriv.h>

Win32 프로젝트
#include <comdef.h>
#include <crtdbg.h>
#include <atlconv.h>

혹시 링크에러가 나는 경우에는 atls.lib 라이브러리를 추가해주면 됩니다.

Visual C++에서 시리얼 포트 연결하기

지금까지 시리얼 포트를 열때 다음과 같이 쓰고있었습니다.

[code cpp]HANDLE comm = CreateFile(
   "COM3",
   GENERIC_READ | GENERIC_WRITE,
   0,
   NULL,
   OPEN_EXISTING,
   FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); [/code]

그런데 저렇게 하면 10번 이상의 포트는 열리지 않는 문제점이 있습니다.
이것때문에 오늘 또 한시간정도 삽질을 햇군요 -_-;;;

10번 이상의 포트를 열고 싶을 때는 다음과 같이 써줘야 합니다.

[code cpp]HANDLE comm = CreateFile(
   "\\\\.\\COM10",
   GENERIC_READ | GENERIC_WRITE,
   0,
   NULL,
   OPEN_EXISTING,
   FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);[/code]
10번 이하의 포트도 이 방법으로 열 수 있으니 항상 이렇게 쓰는것이 좋겠습니다.

윈도우 7 XP Mode 설치하기

윈도우 7 프로페셔널 이상 버전에서 사용할 수 있는 XP Mode 는
윈도우 7 설치시 기본으로 설치되는 것이 아니라  
Windows XP Mode 와 Windows Virtual PC를 추가로 설치해야 사용할 수 있습니다.
아래 사이트에서 해당 소프트웨어를 다운받을 수 있습니다.


이 기능은 PC의 프로세서가 가상화 기술을 지원해야 사용할 수 있습니다.
내 컴퓨터가 PC가 가상화를 지원하는지 알아보려면 위의 링크에 2번 항목을 통해 다운받을 수 있는 도구를 통해 확인할 수 있습니다.

내 컴퓨터가 가상화를 지원한다면 3번 항목을 통해 사용하고 있는 윈도우 7 버전과 언어를 선택하면 해당 다운로드 링크가 나타납니다.

Windows XP Mode를 선택하여 WindowsXPMode_ko-kr.exe 파일을 다운받고,
Windows Virtual PC 를 선택하여 Windows6.1-KB958559-x64.msu 파일을 다운받습니다.
(윈도우 7 버전과 언어에 따라 파일 이름이 다를 수 있습니다.)

두 파일을 실행하여 설치를 끝내고나면
시작 > 모든 프로그램 > Windows Virtual PC > Windows XP Mode를 선택하면 XP Mode를 실행할 수 있습니다.

2009년 10월 30일 금요일

Visual C++에서 보기 싫은 Warning 안보이게 하기

boost 등의 템플릿을 사용한 외부 라이브러리를 사용하다보면
무시해도 되는 Warning이 엄청나게 많이 발생하는 경우가 있습니다.
보기 싫은 Warning을 보이지 않게 하기 위해서는
해당 라이브러리를 사용하는 클래스의 헤더파일 안에 다음과 같이 써 주면 됩니다.

#pragma warning(disable:경고번호)

하드디스크 읽기/쓰기 속도 높이기

윈도 7을 얻게 된 기념으로 빠른 시스템을 구축해보고자
Western Digital 의 VelociRaptor 150G 하드를 구매했습니다.
그런데 며칠 후 KBench 에서 대용량 하드를 이용하여 속도 빠른 시스템용 하드를
만드는 방법이 올라왔네요.


요지는 큰 하드를 사서 플래터 바깥쪽의 일부만 사용하게 되면 빠른 속도가 나온다 입니다.
대략 120~130Mb/s 의 Read / Write 속도를 보여주는군요.
Read / Write 속도만 놓고 보면 VelociRaptor 보다 더 나은 것 같습니다.
1테라 하드로 200G만 사용하게 시도했다면 VelociRaptor 150G의 절반가격에 해결할 수 있었을것 같군요
아흑. 내돈 ㅠㅠ

윈도우 7 대학생 프로모션

10월 22일 자정쯤 윈도우 7 대학생 할인 프로모션에 대해 알게 되었습니다.


처음 봤을땐 저 링크가 아니었지만 윈도우 7 프로페셔널을 39,900원에  판매한다는 글을 보고

두시간여 동안 고민하다가 질렀지요.

그런데, 다운이 바로 안되더군요 -_-;;

다음날 아침에 일어나 보니 판매사이트가 막혀있었습니다. -_-;;;

여러 게시판을 가보니 그냥 환불해줄거라는 둥, 돈을 더받을거라는둥 추측이 난무했는데 그 다음날 메일이 왔습니다.

------------------------------------------------------------

친애하는 고객님께,

Windows 7을 구입해 주셔서 감사합니다!

고객님께서Windows 7제품 구매 후 다운로드를 받는 과정에서 문제가 발생했을 수 있음을 인지하고 있으며, 고객님의 문제를 즉시 해결할 수 있도록 아래에 Windows 7 제품을 다운로드 하실 수 있는 지침을 보내 드립니다. 이 문제로 인해 고객님께서 겪으셨을 불편에 대해 사과의 말씀 드립니다. 문제가 해결될 때까지 기다려 주신 고객님께 깊은 감사의 말씀을 드리며, 이에 고객님의 주문을 환불해 드리고자 합니다. 그리고, 고객님은 아래 다운로드 지침을 통해 Windows 7 제품은 무료로 다운로드 받아서 계속 사용하실 수 있습니다. 고객님의 주문은 30일 이내에 환불처리 될 것입니다.

제품 다운로드 지침:
1 단계: 설치를 준비하기 위해 다음 설치 지침을 검토하십시오.
링크생략
2 단계:   아래 링크를 클릭하거나, 복사하여 브라우저에 붙여넣기 하십시오.
링크생략
3 단계:   '저장' 단추를 클릭하여 Windows 7 다운로드를 도와주는 다운로드 관리자라고하는 작은 파일을 다운로드합니다.
4 단계:   이 작은 파일이 저장되어 있는 위치를 탐색하여 파일을 열고Windows 7 파일을 다운로드할 위치를 선택하고 Windows 7의 다운로드를 시작합니다.
5 단계:   Windows 7 파일의 다운로드가 완료되면 확장명이 '.exe'인 파일을 클릭하여 Windows 7의 설치를 시작합니다.
6 단계:   대화 상자에 25자의 제품 키 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX 를 입력합니다.
7 단계:   Windows 7을 사용합니다! 자세한 내용은 http://windows.microsoft.com/ 에서 찾아보실 수 있습니다.

불편을 끼쳐 드린 점 다시 한번 깊은 사과를 드리며 Windows 7을 사용해 주셔서 감사합니다.

감사합니다.
고객 지원 팀 - Windows 7 온라인 상점

------------------------------------------------------------

즉.. 윈도우 7 프로페셔널을 공짜로 받게 되었습니다. ㅎㅎ