'전체 글'에 해당되는 글 2826건
- 2010.04.30 Class Diagram 클래스간 관계 표시(UML)
- 2010.04.29 NiNew 사용 시기
- 2010.04.29 TCHAR에 관한여...
- 2010.04.27 VC 2008 -> VC 2005로 다운해버리기 1
- 2010.04.27 XML introduce(XML 문법 설명)
- 2010.04.27 C++ STL int -> string, string -> int 로 변환하기 1
- 2010.04.27 Tiny XML 링크
- 2010.04.21 Virtual Keys, Standard Set
- 2010.04.21 MS의 매직 디버깅 숫자들의 의미...
- 2010.04.20 괜찮은 참고 사이트
NiNew 사용 시기
NiNew등의 Ni 관련 함수들은
NiInit() 이후에 와야 되는 것 같다.
같은 동적할당이라 생각하고 NiInit() 이전에 했더니 컴파일 에러는 안나는데..
런타임 에러가 난다.
기억해 두자.
'Gamebryo > Shoveling' 카테고리의 다른 글
직접 만든 mesh의 바운딩 박스는 제대로 업데이트 해주자. (0) | 2011.10.31 |
---|---|
[삽질] 스마트 포인터 해제 (0) | 2010.04.13 |
TCHAR에 관한여...
출처 : http://alpu.egloos.com/2968362/ |
-----------------------------------------------------------------------
SBCS 1byte win9X, NT \0
-----------------------------------------------------------------------
MBCS 1byte(영문), 2byte(한글) winNT \0
-----------------------------------------------------------------------
UNICODE 2byte winNT,CE \0\0
-----------------------------------------------------------------------
Unicod와 MBCS/ANSI에 따라서 따로 구분해서 프로그램할 필요가 없도록 하기위해서
사용하는 것이 TCHAR 매크로임
즉, TCHAR 타입이 _UNICODE가 정의된 경우에는 wchar_t 타입으로 작동하고,
_MBCS가 정의된 경우에는 char 타입으로 작동한다.
(TCHAR 을 나타는 매크로가 _T 이다. (한문자 _T(' '), 문장 _T(" "))
#include <tchar.h>
#define _UNICODE // ==> TCHAR를 wchar_t 형으로 대치
#define _MBCS // ==> TCHAR를 char 형으로 대치 (default)
[ 타입 정의 ]
#ifdef UNICODE
typedef wchar_t TCHAR; // 2byte
#else
typedef char TCHAR; // 1byte
#endif
[ 함수 정의 ]
#ifdef UNICODE
typedef SetWindowTextW SetWindowText;
#else
typedef SetWindowTextA SetWindowText;
#endif
UNICODE가 정의 되면,
--------------------------------------------------------
TCHAR == wchar_t
TEXT == _TEXT == L
_UNICODE가 정의 되면,
--------------------------------------------------------
TCHAR == wchar_t
_T == __T == _TEXT == L
따라서 UNICODE, _UNICODE가 모두 정의 되어야 한다.
_MBCS가 정의 되면,
--------------------------------------------------------
TCHAR == char
_T == __TEXT == 사라짐
UNICODE, _UNICODE, _MBCS 중 어느것도 정의 되지 않으면,
--------------------------------------------------------
TCHAR == char
_T == __TEXT == 사라짐
[ 예) 상수 문자열 ]
LPTSTR lpszStr = "My string"; // 문자열을 ANSI 문자열로 간주,
// 데이터형 불일치로 에러가 발생한다.
TCHAR *lpszStr = T("My string");
LPTSTR lpszStr = _T("My string"); // _UNICODE가 정의되어 있으면 _T()는 유니코드
// 문자열 상수로 변환하고, _MBCS가 정의되어 있으면
// ANSI 문자열 상수로 변환한다.
LPTSTR lpszStr = TEXT("My string"); // 상동
LPWSTR lpszStr = L("My string"); // 유니코트 문자열로 지정하는 매크로 함수 L()
[ 예) 문자열 버퍼 길이 계산 ]
#define _UNICODE
TCHAR szBuffer[200]; // szBuffer의 크기는 400 bytes
DWORD dwlen;
dwlen = sizeof(szBuffer); // 400 bytes
dwlen = sizeof(szBuffer) / sizeof(TCHAR); // 실제 저장 가능한 유니코드 문자 개수는 200개
[ 예) 표준 문자열 라이브러리 함수 ]
표준 C 런타임 함수 strlen()에 해당하는 유니코드 함수는 wcslen()이지만,
_tcslen()을 사용하면 _UNICODE, _MBCS 정의에 따라 컴파일시에 알아서 적절히 변환된다.
(tchar.h에 다 정의되어 있다.)
ANSI Unicode TCHAR type
--------------------------------------
strlen() wcslen() _tcslen()
strcat() wcscat() _tcscat()
strchr() wcschr() _tcschr()
strcmp() wcscmp() _tcscmp()
strcpy() wcscpy() _tcscpy()
strstr() wcsstr() _tcsstr()
strrev() _wcsrev() _tcsrev()
printf() wprintf() _tprintf()
sprintf() swprintf() _stprintf()
scanf() wscanf() _tscanf()
[ 예) ANSI 문자열과 Unicode 문자열 간의 변환 ]
(1) Multi-Byte String을 Wide Character String(유니코드)으로 변환
mbstowcs(WCHAR *des, char *src, int BufferSize);
(2) Wide Character String(유니코드)을 Multi-Byte String으로 변환
wcstombs(char *des, WCHAR *src, int BufferSize);
[ 타입 정의 ]
typedef CHAR * LPSTR, *PSTR;
CHAR * == LPSTR == PSTR
typedef CONST CHAR * LPCSTR, *PCSTR;
CONST CHAR * == LPCSTR == PCSTR
LPTSTR = TCHAR *
LPCTSTR = CONST TCHAR *
[출처] [펌] TCHAR에 관한여...|작성자 낙엽
'Programming > C/C++' 카테고리의 다른 글
[펌] 순수 가상 소멸자 (2) | 2010.05.06 |
---|---|
C/C++에서 assert (0) | 2010.05.03 |
[C]#pragma - once, pack, warning, comment, link (0) | 2010.04.16 |
다른방식의 싱글톤 (0) | 2010.04.15 |
조건문의 최적화 방법 (0) | 2010.04.14 |
VC 2008 -> VC 2005로 다운해버리기
간단하더라.
우선 .sln파일을 열어 version항목에 있는 숫자를 1 내린다.
10.0 -> 9.0
그리고 vproj파일을 열어 같은 작업을 반복한다.
9.0 -> 8.0
참고로 2008로 적혀있는 문구는 2005로 바꿔주면된다.
나 군대다녀와도 까먹으면 안돼!!
[출처] VC 2008 -> VC 2005로 다운해버리기|작성자 닭둘기
'Tip & Tech' 카테고리의 다른 글
추적점!! OutputDebugString 대체 역할 (0) | 2010.06.18 |
---|---|
릴리즈/디버그 빌드와 Start/Go의 관계 (0) | 2010.05.06 |
MS의 매직 디버깅 숫자들의 의미... (0) | 2010.04.21 |
[VS][Warning C4530] 예외 처리 관련 경고 안보기 (1) | 2010.04.13 |
Visual C++(VS2003, VS2005, VS2008)의 문자열 처리 요약 (0) | 2010.04.05 |
XML introduce(XML 문법 설명)
'Programming > TinyXML' 카테고리의 다른 글
TinyXml 사용법 요약 (0) | 2010.12.08 |
---|---|
TinyXML Read (2) | 2010.12.08 |
TinyXML Write (0) | 2010.12.08 |
Tiny XML 링크 (0) | 2010.04.27 |
C++ STL int -> string, string -> int 로 변환하기
////////////////////////////////////////////////////////////////////////////////////
// ysoftman
// int -> string, string -> int 로 변환하기
////////////////////////////////////////////////////////////////////////////////////
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string>
#include <sstream>
int main()
{
int num = 0;
// Numeric Type (int, float, double)을 string으로 변환해주기 위한 객체
std::ostringstream ostr;
for (num=1; num<=10; num++)
{
// 초기화
ostr.str("");
// int를 string으로 변환
ostr << num;
printf("[int -> string] ostr = %s\n", ostr.str().c_str());
}
std::string str = "12345";
num = atoi(str.c_str());
printf("[string -> int] num = %d\n", num);
return 0;
}
'Programming > STL' 카테고리의 다른 글
항목 27 : const_iterator를 iterator로 바꾸는 데에는 distance와 advance를 사용하자. (0) | 2010.11.03 |
---|---|
부스트(boost) 관련 스프링노트 (0) | 2010.06.11 |
괜찮은 참고 사이트 (0) | 2010.04.20 |
effective_stl-hermet (0) | 2010.04.08 |
STL (0) | 2010.03.22 |
Tiny XML 링크
'Programming > TinyXML' 카테고리의 다른 글
TinyXml 사용법 요약 (0) | 2010.12.08 |
---|---|
TinyXML Read (2) | 2010.12.08 |
TinyXML Write (0) | 2010.12.08 |
XML introduce(XML 문법 설명) (0) | 2010.04.27 |
Virtual Keys, Standard Set
VC깔린곳에 include폴더를 보시면 winuser.h파일이 있는데요.
파일내용중에 해당 부분을 찾으실수 있을겁니다.
참고하시라고 제가 가진 파일의 일부를 적습니다.
/*
* Virtual Keys, Standard Set
*/
#define VK_LBUTTON 0x01
#define VK_RBUTTON 0x02
#define VK_CANCEL 0x03
#define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */
#define VK_BACK 0x08
#define VK_TAB 0x09
#define VK_CLEAR 0x0C
#define VK_RETURN 0x0D
#define VK_SHIFT 0x10
#define VK_CONTROL 0x11
#define VK_MENU 0x12
#define VK_PAUSE 0x13
#define VK_CAPITAL 0x14
#define VK_KANA 0x15
#define VK_HANGEUL 0x15 /* old name - should be here for compatibility */
#define VK_HANGUL 0x15
#define VK_JUNJA 0x17
#define VK_FINAL 0x18
#define VK_HANJA 0x19
#define VK_KANJI 0x19
#define VK_ESCAPE 0x1B
#define VK_CONVERT 0x1C
#define VK_NONCONVERT 0x1D
#define VK_ACCEPT 0x1E
#define VK_MODECHANGE 0x1F
#define VK_SPACE 0x20
#define VK_PRIOR 0x21
#define VK_NEXT 0x22
#define VK_END 0x23
#define VK_HOME 0x24
#define VK_LEFT 0x25
#define VK_UP 0x26
#define VK_RIGHT 0x27
#define VK_DOWN 0x28
#define VK_SELECT 0x29
#define VK_PRINT 0x2A
#define VK_EXECUTE 0x2B
#define VK_SNAPSHOT 0x2C
#define VK_INSERT 0x2D
#define VK_DELETE 0x2E
#define VK_HELP 0x2F
/* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
/* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
#define VK_LWIN 0x5B
#define VK_RWIN 0x5C
#define VK_APPS 0x5D
#define VK_NUMPAD0 0x60
#define VK_NUMPAD1 0x61
#define VK_NUMPAD2 0x62
#define VK_NUMPAD3 0x63
#define VK_NUMPAD4 0x64
#define VK_NUMPAD5 0x65
#define VK_NUMPAD6 0x66
#define VK_NUMPAD7 0x67
#define VK_NUMPAD8 0x68
#define VK_NUMPAD9 0x69
#define VK_MULTIPLY 0x6A
#define VK_ADD 0x6B
#define VK_SEPARATOR 0x6C
#define VK_SUBTRACT 0x6D
#define VK_DECIMAL 0x6E
#define VK_DIVIDE 0x6F
#define VK_F1 0x70
#define VK_F2 0x71
#define VK_F3 0x72
#define VK_F4 0x73
#define VK_F5 0x74
#define VK_F6 0x75
#define VK_F7 0x76
#define VK_F8 0x77
#define VK_F9 0x78
#define VK_F10 0x79
#define VK_F11 0x7A
#define VK_F12 0x7B
#define VK_F13 0x7C
#define VK_F14 0x7D
#define VK_F15 0x7E
#define VK_F16 0x7F
#define VK_F17 0x80
#define VK_F18 0x81
#define VK_F19 0x82
#define VK_F20 0x83
#define VK_F21 0x84
#define VK_F22 0x85
#define VK_F23 0x86
#define VK_F24 0x87
#define VK_NUMLOCK 0x90
#define VK_SCROLL 0x91
/*
* VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
* Used only as parameters to GetAsyncKeyState() and GetKeyState().
* No other API or message will distinguish left and right keys in this way.
*/
#define VK_LSHIFT 0xA0
#define VK_RSHIFT 0xA1
#define VK_LCONTROL 0xA2
#define VK_RCONTROL 0xA3
#define VK_LMENU 0xA4
#define VK_RMENU 0xA5
#if(WINVER >= 0x0400)
#define VK_PROCESSKEY 0xE5
#endif /* WINVER >= 0x0400 */
#define VK_ATTN 0xF6
#define VK_CRSEL 0xF7
#define VK_EXSEL 0xF8
#define VK_EREOF 0xF9
#define VK_PLAY 0xFA
#define VK_ZOOM 0xFB
#define VK_NONAME 0xFC
#define VK_PA1 0xFD
#define VK_OEM_CLEAR 0xFE
#define VK_A 0x41
#define VK_B 0x42
#define VK_C 0x43
#define VK_D 0x44
#define VK_E 0x45
#define VK_F 0x46
#define VK_G 0x47
#define VK_H 0x48
#define VK_I 0x49
#define VK_J 0x4A
#define VK_K 0x4B
#define VK_L 0x4C
#define VK_M 0x4D
#define VK_N 0x4E
#define VK_O 0x4F
#define VK_P 0x50
#define VK_Q 0x51
#define VK_R 0x52
#define VK_S 0x53
#define VK_T 0x54
#define VK_U 0x55
#define VK_V 0x56
#define VK_W 0x57
#define VK_X 0x58
#define VK_Y 0x59
#define VK_Z 0x5A
[출처] VK_A? VK_S? 버추얼키값 설정.|작성자 닭도난다
가상키이름 | bVK헥사값 | bVK 파라메터 | |
VK_LBUTTON | 1 | 1 | 마우스 왼쪽 버튼 |
VK_RBUTTON | 2 | 2 | 마우스 오른쪽 버튼 |
VK_CANCEL | 3 | 3 | Ctrl + C |
VK_MBUTTON | 4 | 4 | 마우스 가운데 버튼 |
VK_BACK | 8 | 8 | Backspace |
VK_TAB | 9 | 9 | Tab |
VK_CLEAR | 0C | 12 | CLEAR |
VK_RETURN | 0D | 13 | Enter |
VK_SHIFT | 10 | 16 | Shift |
VK_CONTROL | 11 | 17 | Ctrl(좌측) |
VK_MENU | 12 | 18 | Alt(좌측) |
VK_PAUSE | 13 | 19 | Pause Break |
VK_CAPITAL | 14 | 20 | Caps Lock |
VK_HANGUL | 15 | 21 | 한/영 키 |
VK_HANJA | 19 | 25 | 한자 키 |
VK_ESCAPE | 1B | 27 | ESC |
VK_SPACE | 20 | 32 | Spacebar |
VK_PRIOR | 21 | 33 | Page Up |
VK_NEXT | 22 | 34 | Page Down |
VK_END | 23 | 35 | End |
VK_HOME | 24 | 36 | Home |
VK_LEFT | 25 | 37 | Left Arrow(←) |
VK_UP | 26 | 38 | Up Arrow(↑) |
VK_RIGHT | 27 | 39 | Right Arrow(→) |
VK_DOWN | 28 | 40 | Down Arrow(↓) |
VK_SELECT | 29 | 41 | Select |
VK_EXECUTE | 2B | 43 | EXECUTE |
VK_SNAPSHOT | 2C | 44 | PrtScr |
VK_INSERT | 2D | 45 | Insert |
VK_DELETE | 2E | 46 | Delete |
VK_HELP | 2F | 47 | Help |
VK_0 | 30 | 48 | 0 키 |
VK_1 | 31 | 49 | 1 키 |
VK_2 | 32 | 50 | 2 키 |
VK_3 | 33 | 51 | 3 키 |
VK_4 | 34 | 52 | 4 키 |
VK_5 | 35 | 53 | 5 키 |
VK_6 | 36 | 54 | 6 키 |
VK_7 | 37 | 55 | 7 키 |
VK_8 | 38 | 56 | 8 키 |
VK_9 | 39 | 57 | 9 키 |
VK_A | 41 | 65 | A 키 |
VK_B | 42 | 66 | B 키 |
VK_C | 43 | 67 | C 키 |
VK_D | 44 | 68 | D 키 |
VK_E | 45 | 69 | E 키 |
VK_F | 46 | 70 | F 키 |
VK_G | 47 | 71 | G 키 |
VK_H | 48 | 72 | H 키 |
VK_I | 49 | 73 | I 키 |
VK_J | 4A | 74 | J 키 |
VK_K | 4B | 75 | K 키 |
VK_L | 4C | 76 | L 키 |
VK_M | 4D | 77 | M 키 |
VK_N | 4E | 78 | N 키 |
VK_O | 4F | 79 | O 키 |
VK_P | 50 | 80 | P 키 |
VK_Q | 51 | 81 | Q 키 |
VK_R | 52 | 82 | R 키 |
VK_S | 53 | 83 | S 키 |
VK_T | 54 | 84 | T 키 |
VK_U | 55 | 85 | U 키 |
VK_V | 56 | 86 | V 키 |
VK_W | 57 | 87 | W 키 |
VK_X | 58 | 88 | X 키 |
VK_Y | 59 | 89 | Y 키 |
VK_Z | 5A | 90 | Z 키 |
VK_LWIN | 5B | 91 | 윈도우키(좌측) |
VK_RWIN | 5C | 92 | 윈도우키(우측) |
VK_APPS | 5D | 93 | App Menu 키 |
VK_NUMPAD0 | 60 | 96 | 숫자키패드 0 |
VK_NUMPAD1 | 61 | 97 | 숫자키패드 1 |
VK_NUMPAD2 | 62 | 98 | 숫자키패드 2 |
VK_NUMPAD3 | 63 | 99 | 숫자키패드 3 |
VK_NUMPAD4 | 64 | 100 | 숫자키패드 4 |
VK_NUMPAD5 | 65 | 101 | 숫자키패드 5 |
VK_NUMPAD6 | 66 | 102 | 숫자키패드 6 |
VK_NUMPAD7 | 67 | 103 | 숫자키패드 7 |
VK_NUMPAD8 | 68 | 104 | 숫자키패드 8 |
VK_NUMPAD9 | 69 | 105 | 숫자키패드 9 |
VK_MULTIPLY | 6A | 106 | 숫자키패드 * |
VK_NUMADD | 6B | 107 | 숫자키패드 + |
VK_SEPARATOR | 6C | 108 | SEPARATOR |
VK_SUBTRACT | 6D | 109 | 숫자키패드 - |
VK_DECIMAL | 6E | 110 | 숫자키패드 . |
VK_DEVIDE | 6F | 111 | 숫자키패드 / |
VK_F1 | 70 | 112 | F1 키 |
VK_F2 | 71 | 113 | F2 키 |
VK_F3 | 72 | 114 | F3 키 |
VK_F4 | 73 | 115 | F4 키 |
VK_F5 | 74 | 116 | F5 키 |
VK_F6 | 75 | 117 | F6 키 |
VK_F7 | 76 | 118 | F7 키 |
VK_F8 | 77 | 119 | F8 키 |
VK_F9 | 78 | 120 | F9 키 |
VK_F10 | 79 | 121 | F10 키 |
VK_F11 | 7A | 122 | F11 키 |
VK_F12 | 7B | 123 | F12 키 |
VK_F13 | 7C | 124 | F13 키 |
VK_F14 | 7D | 125 | F14 키 |
VK_F15 | 7E | 126 | F15 키 |
VK_F16 | 7F | 127 | F16 키 |
VK_F17 | 80 | 128 | F17 키 |
VK_F18 | 81 | 129 | F18 키 |
VK_F19 | 82 | 130 | F19 키 |
VK_F20 | 83 | 131 | F20 키 |
VK_F21 | 84 | 132 | F21 키 |
VK_F22 | 85 | 133 | F22 키 |
VK_F23 | 86 | 134 | F23 키 |
VK_F24 | 87 | 135 | F24 키 |
VK_NUMLOCK | 90 | 144 | Num Lock 키 |
VK_SCROLL | 91 | 145 | Scroll Lock 키 |
'Programming > Win32API' 카테고리의 다른 글
IME (0) | 2010.09.02 |
---|---|
getClienteRect 와 getWindowRect (0) | 2010.08.31 |
mfc, api 의 HINSTANCE 구하기 GetModuleHandle(NULL) (0) | 2010.06.03 |
Drag & Drop 예제 소스 (0) | 2010.04.20 |
윈도우 핸들 제어 (0) | 2010.04.14 |
MS의 매직 디버깅 숫자들의 의미...
MS의 매직 디버깅 숫자들의 의미...
|
http://www.gamecodi.com/board/zboard.php?id=GAMECODI_Tip&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=185
'Tip & Tech' 카테고리의 다른 글
릴리즈/디버그 빌드와 Start/Go의 관계 (0) | 2010.05.06 |
---|---|
VC 2008 -> VC 2005로 다운해버리기 (1) | 2010.04.27 |
[VS][Warning C4530] 예외 처리 관련 경고 안보기 (1) | 2010.04.13 |
Visual C++(VS2003, VS2005, VS2008)의 문자열 처리 요약 (0) | 2010.04.05 |
헝가리안 표기법 및 코딩 규칙 가이드 라인 (읽어보면 좋은 글) (0) | 2010.03.26 |
괜찮은 참고 사이트
'Programming > STL' 카테고리의 다른 글
부스트(boost) 관련 스프링노트 (0) | 2010.06.11 |
---|---|
C++ STL int -> string, string -> int 로 변환하기 (1) | 2010.04.27 |
effective_stl-hermet (0) | 2010.04.08 |
STL (0) | 2010.03.22 |
STL Container 조합하기 (0) | 2010.03.21 |