#include #include #include /*for _beginthreadex, _endthreadex*/ #pragma comment( lib, "ws2_32" ) unsigned WINAPI ThreadFunction(void* arg); int main(int argc, char** argv) { HANDLE hThread; DWORD dwThreadID; hThread = (HANDLE)_beginthreadex(NULL, 0, ThreadFunction, NULL, 0, (unsigned*)&dwThreadID); if(hThread == 0) { puts("_beginthreadex() error"); exit(1); } printf("생성된 쓰레드의 핸들 : %d \n",hThread..
포맷하기 전에 주소록을 csv로 저장해놨는데, MS 아웃룩으로 옮겨야 할 상황이 온다면? 방법은 간단합니다 아웃룩 익스프레스에서 먼저 읽은 다음에 아웃룩으로 보내주면 되는것이죠. (정확히는 아웃룩에서 읽어오면 됩니다) 파일의 가져오기에서 다른 주소록을 클릭합니다.(스샷은 영문판) 제일 아래 보이는 것이 csv입니다.(comma separated values) 경로를 설정하여 읽어주시구요 그냥 다 체크~ 하시면 읽기가 완료됩니다. 이제 아웃룩을 켜주세요. 가져오기/내보내기 클릭 여기서 세번째에있는 '가져오기 - 인터넷 메일 및 주소'를 클릭합니다. 이 부분에서 Outlook Express를 클릭하고 아랫부분의 '주소록 가져오기'에만 체크합니다. 메일도 갖고 오고 싶으시면 메일가져오기에도 체크하시면 됩니다...
WM_MOUSEWHEEL은 그냥 선언한다고 되지 않아요. windows.h안의 WM_MOUSEWHEEL부분의 정의를 보면 #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) #define WM_MOUSEWHEEL 0x020A #endif 이렇게 되어있습니다. 따라서 stdafx.h에 보통 선언되어있는 #ifndef _WIN32_WINNT // Windows XP 이상에서만 기능을 사용할 수 있습니다. #define _WIN32_WINNT 0x0501 // 다른 버전의 Windows에 맞도록 적합한 값으로 변경해 주십시오. #endif 이부분에서 WINNT뒤의 값을 잘 조정해야겠지요~~ 보통 default값을 #ifndef WINVER // Windows..
제작환경 Visual Studio 2005 C++/Win32 API 그림을 확대/축소할 때 스무스하게 이루어지도록 코딩했습니다. 더블버퍼링 예제로도 도움이 될거에요. 감사합니다. 주요코드 case WM_TIMER: switch(wParam) { case 1: if(nSampleWidth != nDestWidth) { if(bZoomMode) { nCntWidth = abs(nDestWidth - nSampleWidth); nSampleWidth+=(nCntWidth/7); } else { nCntWidth = abs(nDestWidth - nSampleWidth); nSampleWidth-=(nCntWidth/7); } } if(nSampleHeight != nDestHeight) { if(bZoomMo..
VS(비쥬얼 스튜디오, Visual Studio)사용시 가끔 접할 수 있는 문제.. 엄밀히 말하면 PCH(미리 컴파일된 헤더)는 에러는 아니구요.. 하지만 코딩하다보면 아래와 같은 문장을 가끔 볼 수 있죠. unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source? '#include' statement specified with the /Ycstdafx.h command-line option was not found in the source file 프로젝트를 생성할때 '미리 컴파일된 헤더'에 체크한 기억이 있으세요? 그것땜에 그렇습니다. 미리 컴파..
http://www.winapi.co.kr 의 '더블 버퍼링' 강좌 부분에서 가장 눈에 띄는 부분. 이 코드에서 흔히 오해하기 쉬운 것이 있는데 메모리 비트맵인 hBit와 메모리 DC인 hMemDC와의 관계이다. GDI 출력 함수들은 반드시 DC 핸들을 요구하며 비트맵에 출력하기 위해서는 이 비트맵을 선택하고 있는 메모리 DC의 핸들이 필요하다. 그래서 화면 DC와 호환되는(=비트맵과 호환되는) hMemDC를 생성하고 여기에 비트맵을 선택한 후 출력했다. 이 DC는 어디까지나 비트맵 출력을 위한 임시 DC이므로 비트맵을 다 작성하고 난 다음에는 해제되어야 한다. 더블 버퍼링에서 내부 버퍼라고 칭하는 것은 비트맵이지 메모리 DC가 아니다. 메모리 DC는 비트맵을 선택하기 위해 잠시만 사용되는 DC일 뿐인데..
1. 유닉스에서의 파일 유닉스에서의 파일이 가지는 의미는 타 OS들과는 다른 독특한 의미를 지닌다. "유닉스 시스템에서는 모든것이 파일로 돌아간다" 란 말이있다. 장치나 혹은 네트웍통신을 위한 소켓,또한 파이프, FIFO등을 다룰때도 파일개념이(실지로 파일이다.)적용되기 때문이다. 그만큼 파일이 중요하기 때문에 우리는 가장 처음 LOW LEVEL(저수준) 파일입 출력을 보겠다. 2. 왜 LOW LEVEL File IO 인가? 일반적으로 C프로그래밍을 하면서 printf()나 scanf()등의 입축력 함수들을 많이 다뤄봤을것이다(이들을 표준 라이브러리라 한다). 하지만 우리가 여기서 습득할 함수들은 일명 System Call 함수 즉, 커널에서 제공해주는 저수준의 함수이다. 이말은 그만큼 더 커널,시스템에..
메모리DC를 생성하고 바로 BitBlt로 hdc에서 memDC로 옮기면 옮겨지지 않습니다. 이유가 뭘까요~? MemDC는 생성직후의 크기가 1x1이기 때문이지요~ HBITMAP hBit; HDC hdc, hMemDC; WM_CREATE: hdc = GetDC(hWnd); hBit = CreateCompatibleBitmap(hdc,1024,768); hMemDC = CreateCompatibleDC(hdc); SelectObject(hMemDC, hBit); 이렇게 CreateCompatibleBitmap으로 HBITMAP을 생성해 준 후, SelectObject로 MemDC를 선택해주면 크기가 HBITMAP의 크기로 설정됩니다~ 다만 배경이 검은색으로 차기 때문에 흰색으로 채워줘야겠죠???
- Total
- Today
- Yesterday
- 드라이버
- Cloud
- jni강좌
- db
- 안드로이드
- API
- Python
- driver
- NDK
- database
- AWS
- C++
- it
- java
- android
- algorithm
- 리눅스
- gcc
- winapi
- Troubleshooting
- jni
- MFC
- 프로그래밍
- Quiz
- linux
- 음악
- Visual C++
- C
- source
- kering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |