Jungsoo Nam An BlockChain developer

Visual C++ Win32 타이머 CreateTimerQueueTimer 예제

Win32 콘솔 프로젝트에서 사용할수 있는 Timer 예제이다. #include <stdio.h> #include <windows.h> VOID CALLBACK TimerCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired) { printf("TimerCallback\n"); } int main() { // 타이머 큐를 만든다. HANDLE timerQueue = CreateTimerQueue(); // 타이머를 만든다. HANDLE timer; // 처음 시작할때 0.5초 지연, 주기 0.5초마다 호출되... Read more

CLion에서 사용하는 CMakeLists.txt 간단 강좌

리눅스에서 프로그래밍할때 IntelliJ 기반의 CLion이라는 툴을 사용해보았다. CLion은 Makefile이 아닌 범용 maketool인 CMake를 사용한다. 그래서 Makefile 대신에 CMakeLists.txt를 만들어줘야 빌드가 된다. 1. 아래는 long string에 대한 에러가 날때 사용한다. CFLAGS옵션 이다. Makefile FLAGS = -g -O3 -fpermissive -w CMakeLists.txt set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -fpermissive”) 2. 아래는 include directory에 대해서 설정이다. I옵션이다. Ma... Read more

Visual C++ Freetype anti aliasing 적용 안하기

bool glyphBit(const FT_GlyphSlot &glyph, const int x, const int y) { int pitch = abs(glyph->bitmap.pitch); unsigned char *row = &glyph->bitmap.buffer[pitch * y]; char cValue = row[x >> 3]; return (cValue & (128 >> (x & 7))) != 0; } for (int idx = 0; idx < wcslen(wstr); idx++) { //FT_Load_... Read more

Visual C++ Freetype 문자열 픽셀 길이 구하기

int penx = 0; for (int i = 0; i < wcslen(wstr); i++) { if (len > 0 && i >= len) break; FT_Load_Char(face, wstr[i], FT_LOAD_NO_BITMAP);// 문자열 width 테스트용 penx += face->glyph->advance.x >> 6; } return penx; Read more

Visual C++ iconv 사용하여 wchar_t 변환하기

Visual C++에서는 wchar_t로 유니코드를 사용한다. 그런데 유닉스나 모바일 호환성을 위해서 Win32 API가 아닌 iconv로 인코딩을 변환하다보면 에러가 발생한다. 그럴때는 다음과 같이 tocode에 “UTF-8” 대신에 “WCHAR_T”를 입력하면 된다. char str[] = "변환할문자열"; TCHAR str2[4096]; iconv_convert("WCHAR_T", "EUC-KR", str, (char*)str2, 4096 * 2); // 현재 사용하고있는 iconv 래퍼 함수이다. int iconv_convert(const char *tocode, const char *fromcode, ... Read more