전체 글 (93)
-
2015.10.24 [OpenGL] 초기 설정 및 셋팅 1
OpenGL 설정과 셋팅을 통해 시작해보자!!! 먼저 오픈지엘을 사용하려면 glut.dll, glut32.dll, glut.lib, glut.h ..등의 glut 종류의 라이브러리와 헤더파일 등이 필요합니다 출처:http://neoplanetz.blogspot.kr/2013/07/opengl-httpwww.html 여기서 받으시면 됩니다!! ★ 읽고가세요! ★ 다운받은 파일들을 복사해서 각각의 위치(파일)에 추가 해주어야합니다 운영체제의 bit 종류에 따라, Program File 에 (x86)이 붙은 경로일 수도 있고, 안붙은 경로일 수도 있습니다. (64bit->(86x)) 또한 visual studio의 버전에 따라 각각의 파일을 복사해줘야 하는 위치가 다를 수 있습니다. visual studio가..
-
2015.10.16 MultiByteToWideChar 함수의 이해와 사용법
MultiByteToWideChar 함수가무엇인지 이해하고 사용해보자! MultiByteToWideChar 함수 이 함수는 ANSI 문자열에서 유니코드로의 변환이 필요할 때 사용합니다 *****ANSI 문자열 : 아마도 아스키코드로 입력된 문자열 => MultiByte유니코드 : 사용중인 플랫폼, 프로그램, 언어에 관계없이 문자마다 고유한 숫자를 제공 => WideChar***** 함수의 원형INT MultiByteToWideChar ( _In_ UINT CodePage, //변환할 O/S의 코드페이지, 주로 CP_ACP를 사용 _In_ DWORD dwFlags, //어떤 char 형태로할 변환할 것인지 _In_ LPCSTR lpMultiByteStr, //유니코드로 변환할 문자열 포인터 _In_ ..
-
2015.09.25 [C] 디버깅 중 출력화면에 변수 출력하기
시간과 같은 변수들은 디버깅할때 유의할 점입니다디버깅시 브레이크를 걸었다 하더라도 시간은 계속 흐르니까요 그래서 시간을 알고 싶을때에는 디버깅 중에 시간을 출력하여 확인할 필요가 있습니다. 디버깅에 시간을 출력하기 위해 필요한 함수 sprintf(_s)OutputDebugStringA sprintf 함수 헤더파일#include 원형int sprintf(char* str, const char* format, .....) 사용법매개변수는 차례대로1. 문자열을 저장할 char*형 변수2. " 문자열 "3. , ... 부분은 문자열에 변수가 들어갈 수 있음 문자열을 저장할 변수는 문자열보다 커야하고문자열 마지막에 NULL 문자를 생각하여 항상 문자열보다 1칸 커야한다 => char buff[100]; sprin..
-
2015.09.24 [API] GetAsyncKeyState 함수 정리
GetAsyncKeyState 함수에 대해 알아보자! GetAsyncKeyState(int vKey) 원형SHORT WINAPI GetAsyncKeyState( _In_ int vKey ); => 마우스, 키보드 둘 다 확인이 가능합니다.vk를 통해 어떤키가 눌러졌는지에 대해 알 수 있는 함수입니다.(vKey 확인::https://msdn.microsoft.com/ko-kr/library/windows/desktop/dd375731(v=vs.85).aspx)최상위 비트는 현재 눌렸는지를 말해주고최하위 비트는 이전에 눌렀던 적이 있는지 말해줍니다.이러한 것들은 리턴값 4개로 확인할 수 있습니다. 리턴값:: 0: 이전에 누른 적이 없고 호출시점에 안 눌린 상태 0x8000: 이전에 누른 적이 없고 호출시점에..
-
2015.09.24 [API] 마우스 커서 위치 받아오기 1
마우스 커서 위치를 받아온 후,클라이언트 화면으로 변환해보자 ::GetCursorPos(LPPOINT lpPoint) 원형BOOL WINAPI GetCursorPos( _Out_ LPPOINT lpPoint ); =>바탕화면의 마우스 커서를 받아옵니다.매개변수는 POINT형 주소값 입니다. ex) POINT mouse;::GetCursorPos(&mouse); //이렇게하면 mosue 변수 안에, 바탕화면의 마우스 커서 위치를 받아옵니다. 그 후에는 내가 만든 게임 클라이언트 창과 호환이 되도록 해야하는데 그다음에 사용하는 함수가 ScreenToClient() 입니다. ::ScreenToClient(HWND hWnd, LLPOINT lpPoint) 원형BOOL ScreenToClient( _In_ HWN..
[OpenGL] 초기 설정 및 셋팅2015. 10. 24. 21:16
OpenGL 설정과 셋팅을 통해 시작해보자!!!
먼저 오픈지엘을 사용하려면 glut.dll, glut32.dll, glut.lib, glut.h ..등의 glut 종류의 라이브러리와 헤더파일 등이 필요합니다
출처:http://neoplanetz.blogspot.kr/2013/07/opengl-httpwww.html
여기서 받으시면 됩니다!!
★ 읽고가세요! ★
다운받은 파일들을 복사해서 각각의 위치(파일)에 추가 해주어야합니다
운영체제의 bit 종류에 따라, Program File 에 (x86)이 붙은 경로일 수도 있고, 안붙은 경로일 수도 있습니다. (64bit->(86x))
또한 visual studio의 버전에 따라 각각의 파일을 복사해줘야 하는 위치가 다를 수 있습니다.
visual studio가 설치되어 있는 디렉토리에 각각의 파일을 복사합니다.
visual studio의 버전에 따라 디렉토리 경로가 Windows Kits\8.1 이 아닐 수 있습니다.
이 게시글은 O/S Windows7 64bit Visual studio 2013 기준에 작성하였습니다.
설정
1.
gult.h 헤더파일을
C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl
위치에 복사해줍니다.
cf.
저는 Windows7 64bit 인데 7.0이 아닌 8.1이 있었습니다.
또한 visual studio 2013 버전을 사용하기 때문에 다음과 같은 경로로 저장했습니다.
2.
gult.lib / gult32.lib 파일들은
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86
위치에 복사해줍니다
3.
gult.dll / gult32.dll 파일들은
C:\Windows\System32
위치에 복사해줍니다.
셋팅
visual studio 2013을 실행한 다음 프로젝트를 만듭니다.
속성 -> 구성 속성 -> 링커 -> 입력 -> 추가 종속성 편집 클릭 -> gult32.lib; gul32.lib; opengl32.lib 입력
▼▼▼ 스크린샷 설명 ▼▼▼
속성 클릭
구성 속성 클릭
링커 클릭
입력 클릭
화살표 누르고 편집 클릭
위의 내용을 적어주고 확인을 누르면 끝 !!
★ 만약 실행했을때 오류가 난다면
C:\Windows\SysWOW64 디렉토리에
gult.dll / gult32.dll 파일을 복사해주면 됩니다.
본 게시물은 작성자가 빨리 찾을 수 있도록 정리한 것입니다.
출처:http://kuroikuma.tistory.com/113
'(구) 자니..?' 카테고리의 다른 글
[퍼온 자료] Lua와 C 바인딩 (0) | 2018.10.25 |
---|---|
[Lua] 기초 : if 문법 / end expected near eof (0) | 2016.09.09 |
[OpenGL] 기본 도형 그리기 (0) | 2015.11.26 |
[OpenGL] 윈도우 좌표를 OpenGL 좌표로 변환하기 (1) | 2015.11.19 |
MultiByteToWideChar 함수의 이해와 사용법2015. 10. 16. 18:58
MultiByteToWideChar 함수가
무엇인지 이해하고 사용해보자!
MultiByteToWideChar 함수
이 함수는 ANSI 문자열에서 유니코드로의 변환이 필요할 때 사용합니다
*****
ANSI 문자열 : 아마도 아스키코드로 입력된 문자열 => MultiByte
유니코드 : 사용중인 플랫폼, 프로그램, 언어에 관계없이 문자마다 고유한 숫자를 제공 => WideChar
*****
함수의 원형
INT
MultiByteToWideChar ( _In_ UINTCodePage, //변환할 O/S의 코드페이지, 주로 CP_ACP를 사용
_In_ DWORD dwFlags, //어떤 char 형태로할 변환할 것인지 _In_ LPCSTR lpMultiByteStr, //유니코드로 변환할 문자열 포인터 _In_INT
cbMultiByte, //유니코드로 변환할 문자열의 길이
_Out_opt_ LPWSTR lpWideCharStr, //변환된 문자열을 저장할 버퍼의 포인터 _In_INT
cchWideChar //변환된 문자열을 저장할 버퍼의 길이
);
사용예시 )
Image* img;
char* fileName = "겨울동화룰루.png";
WCHAR file[MAX_PATH];
MultiByteToWideChar(CP_ACP, NULL, fileName, -1, file, MAX_PATH);
img = Image::FromFile(file);
cf.
gdi+ 에서 Image::FromFile 함수를 사용할 때
그대로 "겨울동화룰루.png" 를 넣고싶으면
Image::FromFile(L"겨울동화룰루.png");
L 을 붙여줘야한다
/////////////////////////////////////////////////////////////////////////////////////
WCHAR : 16bit 유니코드 char
MAX_PATH : 드라이브, 폴더경로, 파일명, 널문자까지 합한 최대길이 (260)
함수예시에서 문자열의 길이인데 -1 을 사용한 이유 :
이 파라미터가 -1이면, 기능은 널 종료 문자를 포함하는 전체 입력 스트링을 처리한다. 따라서, 생성 된 유니 코드 문자열은 널 종료 문자를 갖고, 함수에 의해 리턴 된 길이는이 문자를 포함한다.
출처 - MSDN
즉, 문자열에는 \0 이라는 널문자가 저장되는데, 그것을 만날때까지의 전체 길이를 처리한다는 의미
'API · MFC' 카테고리의 다른 글
[API/GDI+] Graphics.DrawRectangle (0) | 2015.12.04 |
---|---|
[API] WPARAM , LPARAM (0) | 2015.10.28 |
[API] Graphics.DrawImage (Image*, INT x, INT y, INT srcx, INT srcy, INT srcwidh, INT srcheight, Unit) 함수 정리 (0) | 2015.10.26 |
[API] GetAsyncKeyState 함수 정리 (0) | 2015.09.24 |
[API] 마우스 커서 위치 받아오기 (1) | 2015.09.24 |
[C] 디버깅 중 출력화면에 변수 출력하기2015. 9. 25. 18:32
시간과 같은 변수들은 디버깅할때 유의할 점입니다
디버깅시 브레이크를 걸었다 하더라도 시간은 계속 흐르니까요
그래서 시간을 알고 싶을때에는 디버깅 중에 시간을 출력하여 확인할 필요가 있습니다.
디버깅에 시간을 출력하기 위해 필요한 함수
sprintf(_s)
OutputDebugStringA
sprintf 함수
헤더파일
#include <stdio.h>
원형
int sprintf(char* str, const char* format, .....)
사용법
매개변수는 차례대로
1. 문자열을 저장할 char*형 변수
2. " 문자열 "
3. , ... 부분은 문자열에 변수가 들어갈 수 있음
문자열을 저장할 변수는 문자열보다 커야하고
문자열 마지막에 NULL 문자를 생각하여 항상 문자열보다 1칸 커야한다
=>
char buff[100];
sprintf(buff, "Tick : %f \n", tick);
printf("%s ", buff);
<콘솔 출력화면>
//tick = 45.23 가정
Tick : 45.23
OutputDebugStringA함수
OutputDebugStringA 함수는 매개변수가 LPCSTR 형태라서 char* 형을 받을 수 있는데
OutputDebugString 함수는 매개변수가 LPCTSTR 형태라서 문자열을 따로 형변환을 해주어야한다.
LPCSTR = long pointer constant string = const char*
LPCTSTR = long pointer constant t_string = const tchar*
사실 무슨차이인지 모르겠는데..
char* 넣으면 에러가뜬다.
그래서 나는 OutputDebugStringA 함수를 사용한다.
헤더파일
#include <Windows.h>
원형
void OutputDebugStringA( _In_opt_ LPCSTR lpOutputString)
사용법
문자열이 저장된 LPCSTR형 변수를 넣으면 해당 변수를 출력해준다
char buff[100];
sprintf(buff, "Tick : %f \n", tick);
OutputDebugStringA(buff);
<디버깅 출력화면>
//tick = 45.23 가정
Tick : 45.23
'Language > C++' 카테고리의 다른 글
[C++] variadic template (0) | 2017.12.28 |
---|---|
[C++] 템플릿 이것저것(정리중...) (0) | 2017.12.27 |
[C++] 메세지 패싱 (0) | 2015.09.17 |
[C] 2차원 배열 함수의 매개변수로 보내는 방법 (0) | 2015.09.11 |
[C++] 싱글톤에 대한 정리 (0) | 2015.09.02 |
[API] GetAsyncKeyState 함수 정리2015. 9. 24. 21:29
GetAsyncKeyState 함수에 대해 알아보자!
GetAsyncKeyState(int vKey)
원형
SHORT WINAPI GetAsyncKeyState(
_In_ int vKey
);
=>
마우스, 키보드 둘 다 확인이 가능합니다.
vk를 통해 어떤키가 눌러졌는지에 대해 알 수 있는 함수입니다.
(vKey 확인::
https://msdn.microsoft.com/ko-kr/library/windows/desktop/dd375731(v=vs.85).aspx)
최상위 비트는 현재 눌렸는지를 말해주고
최하위 비트는 이전에 눌렀던 적이 있는지 말해줍니다.
이러한 것들은 리턴값 4개로 확인할 수 있습니다.
리턴값::
0: 이전에 누른 적이 없고 호출시점에 안 눌린 상태
0x8000: 이전에 누른 적이 없고 호출시점에 눌린 상태
0x8001: 이전에 누른 적이 있고 호출시점에 눌린 상태
1: 이전에 누른 적이 있고 호출시점에 안 눌린 상태
"이전에" 라는 것의 의미는
GetAsyncKeyState 함수가 한번 호출된 후 , 다음 GetAsyncKeyState 호출되기까지의 기간입니다.
출처
http://debugjung.tistory.com/entry/GetAsyncKeyState-%EC%98%AC%EB%B0%94%EB%A5%B8-%EC%9D%B4%ED%95%B4
'API · MFC' 카테고리의 다른 글
[API/GDI+] Graphics.DrawRectangle (0) | 2015.12.04 |
---|---|
[API] WPARAM , LPARAM (0) | 2015.10.28 |
[API] Graphics.DrawImage (Image*, INT x, INT y, INT srcx, INT srcy, INT srcwidh, INT srcheight, Unit) 함수 정리 (0) | 2015.10.26 |
MultiByteToWideChar 함수의 이해와 사용법 (0) | 2015.10.16 |
[API] 마우스 커서 위치 받아오기 (1) | 2015.09.24 |
[API] 마우스 커서 위치 받아오기2015. 9. 24. 21:16
마우스 커서 위치를 받아온 후,
클라이언트 화면으로 변환해보자
::GetCursorPos(LPPOINT lpPoint)
원형
BOOL WINAPI GetCursorPos( _Out_ LPPOINT lpPoint );
=>
바탕화면의 마우스 커서를 받아옵니다.
매개변수는 POINT형 주소값 입니다.
ex)
POINT mouse;
::GetCursorPos(&mouse);
//이렇게하면 mosue 변수 안에, 바탕화면의 마우스 커서 위치를 받아옵니다.
그 후에는 내가 만든 게임 클라이언트 창과 호환이 되도록 해야하는데
그다음에 사용하는 함수가 ScreenToClient() 입니다.
::ScreenToClient(HWND hWnd, LLPOINT lpPoint)
원형
BOOL ScreenToClient( _In_ HWND hWnd, LPPOINT lpPoint );
=>
바탕화면의 좌표를 클라이언트 좌표로 변환해주는 함수입니다.
매개변수는 핸들과 POINT형 주소값입니다.
ex)
POINT mouse;
::GetCursorPos(&mouse);
::ScreenToClient(hWnd, &mouse);
//이렇게하면 mouse변수 안에, 변환된 클라이언트 마우스좌표가 저장됩니다.
이러한 좌표와 충돌을 하기위해서는
여러 방법이 있겠지만 한가지 방법으로는 이러한 방법이 있습니다
if(CollisionBox.IsCollision(mouse))
{
//code..
}
'API · MFC' 카테고리의 다른 글
[API/GDI+] Graphics.DrawRectangle (0) | 2015.12.04 |
---|---|
[API] WPARAM , LPARAM (0) | 2015.10.28 |
[API] Graphics.DrawImage (Image*, INT x, INT y, INT srcx, INT srcy, INT srcwidh, INT srcheight, Unit) 함수 정리 (0) | 2015.10.26 |
MultiByteToWideChar 함수의 이해와 사용법 (0) | 2015.10.16 |
[API] GetAsyncKeyState 함수 정리 (0) | 2015.09.24 |