일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스
- 드라이버
- MFC
- Troubleshooting
- C
- kering
- it
- java
- Quiz
- UI
- Visual C++
- jni강좌
- source
- NDK
- InstallShield
- gcc
- jni
- 프로그래밍
- winapi
- sqlite3
- control
- API
- db
- 음악
- driver
- android
- Install Shield
- 안드로이드
- linux
- C++
- Today
- 158
- Total
- 530,647
목록프로그래밍 (19)
JHB의 프로그래밍 삽질기
http://sjpison.tistory.com/68에서 펌------------------------------------------------------------------이 문제를 왜 고민하게 됐는고 하니…SendMessage를 사용하려고 하는데 자신보다 권한이 높게 설정된 프로그램에는 메시지를 보낼 수 없는 문제가 생겼습니다.UAC라고… 윈도우 Vista에 추가된 그 기능 때문에 프로그래머들은 한층 더 골치가 아프게 됐네요.구글링도 해보고 ..
3. make 강좌 3.1 머릿말 소스 한두 개로 이루어진 C/C++ 언어 교양과목 과제물을 제출하는 것이 아니라면 약간만 프로젝트가 커져도 소스는 감당할 수 없을 정도로 불어나게 되고 그것을 일일이 gcc 명령행 방식으로 처리한다는 것은 상당히 곤역스러운 일입니다. 그래서 하나의 프로젝트를 효율적으로 관리하고 일관성있게 관리하기 위하여 Makefile 이라는 형식을 사용하고 make 라는 유틸리티를 사용합니다. 여러분이 리눅스에서 소스 형태..
변수 명명법 cb Count of Bytes 바이트 수 dw double word long형 정수 h handle 핸들 sz Null Terminated NULL 종료 문자열 ch Character 문자형 a Array 배열 ..
#include <stdio.h> #include <windows.h> #include <process.h> /*for _beginthreadex, _endthreadex*/ #pragma comment( lib, "ws2_32" ) unsigned WINAPI ThreadFunction(void* arg); int main(int argc, char** argv) { HANDLE hThread; &nbs..
1) 컴파일러(compiler) 2) 링커(linker) 3) 에디터(Editor) 4) 헤더파일 및 라이브러리 4) 예제 및 기본 골격(Skeleton) 5) 디버거(Debugger) 등의 요소들이 드라이버를 개발하는있어서 필요한 기본적인 요소들이 된다. 이들은 각각 다음[표1-1 구성요소]와 같은 곳에서 구할수 있고 이를 기본으로 해서 드라이버를 개발하게 된다. ..
WM_MOUSEWHEEL은 그냥 선언한다고 되지 않아요.windows.h안의 WM_MOUSEWHEEL부분의 정의를 보면#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)#define WM_MOUSEWHEEL 0x020A#endif이렇게 되어있습니다.따라서 stdafx.h에 보통..
제작환경Visual Studio 2005C++/Win32 API그림을 확대/축소할 때 스무스하게 이루어지도록 코딩했습니다.더블버퍼링 예제로도 도움이 될거에요. 감사합니다.주요코드 case WM_TIMER: switch(wParam) { case 1: if(nSampleWidth != nDestWidth) { if(bZoomMode) ..
typedef class _cTest{ private: int a; int b; public: void set_a(int i) { a = i; } void print_a() { cout << a << endl; } } cTest, *kTest; typedef cTest* pTest; cTest test_f(cTe..
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' stat..
#include "stdafx.h"int *returnarray(int*); int _tmain(int argc, _TCHAR* argv[]){ int k[10] = {10,9,8,7,6,5,4,3,2,1}; int i; returnarray(k); for(i = 0;i < 10;i++) { printf("%d\n",i); } return 0;} int *retur..
extern을 사용하면 됩니다.extern을 사용하면 '이 변수는 이미 사용되었으니 컴파일 하지 말자'라고 컴파일러가 인식하고 다른 프로젝트내의 동일한 이름을 가진 다른 변수에서 값을 끌어다가 사용합니다.main.h를 사용하는 a.cpp와 b.cpp에서 동일한 전역변수 int t를 사용하고 싶다면main.h에다가 extern int t;를 선언해놓고a.cpp나 b.cpp 둘중 하나에다가 전역변수로 int t;를 선언하면 됩니다. 둘다 선언하면 안돼요..
http://www.winapi.co.kr 의 '더블 버퍼링' 강좌 부분에서 가장 눈에 띄는 부분. 이 코드에서 흔히 오해하기 쉬운 것이 있는데 메모리 비트맵인 hBit와 메모리 DC인 hMemDC와의 관계이다. GDI 출력 함수들은 반드시 DC 핸들을 요구하며 비트맵에 출력하기 위해서는 이 비트맵을 선택하고 있는 메모리 DC의 핸들이 필요하다. 그래서 화면 DC와 호환되는(=비트맵과 호환되는) hMemDC를 생성하고 여기에 비트맵을 선택한 후..
1. 유닉스에서의 파일 유닉스에서의 파일이 가지는 의미는 타 OS들과는 다른 독특한 의미를 지닌다. "유닉스 시스템에서는 모든것이 파일로 돌아간다" 란 말이있다. 장치나 혹은 네트웍통신을 위한 소켓,또한 파이프, FIFO등을 다룰때도 파일개념이(실지로 파일이다.)적용되기 때문이다. 그만큼 파일이 중요하기 때문에 우리는 가장 처음 LOW LEVEL(저수준) 파일입 출력을 보겠다. 2. 왜 LOW LEVEL File IO 인가? ..
Edit Control에는 WM_COPY라는 메세지가 있는데요,Edit Control에서 WM_COPY를 사용 할 경우 셀렉트된 부분을 복사하게 되지요.하지만 셀렉트 하지 않고 Edit Control내의 모든 내용을 한번에 복사 할 수 있습니다.이렇게~ SendMessage(Edit1,EM_SETSEL,0,-1); SendMessage(Edit1,WM_COPY,0,0);EM_SETSEL은 선택 영역의 시작과..
분명히 WM_LBUTTONDBLCLK: 라는 더블클릭 메세지가 존재함에도 불구하고 더블클릭 할 경우 실행되지 않아요.어떻게 해결해야 할까요?윈도우를 생성할 때 style에다가 CS_DBLCLKS를 추가해 주면 됩니다~~wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; 이렇게요~그리고.. 리스트박스에서 더블클릭 했을때의 메세지는 LBN_DBLCLK:인데.. 이것역시 그냥은 먹지 않아요.역시나~ 생성할때 스타일에 L..
프로그래밍 되어있는 소스들을 건들다 보면#ifdef#ifndef#endif#include#define이런것들을 볼 수 있는데~~ '전처리기'라고 하죠~#include와 #define은 모두 아실테고..나머지 세개를 볼까요? 너무나 쉽습니다#ifdef STAR //STAR가 define되어 있다면#define A B#endif#ifndef STAR //STAR가 define되어있지 않다면#define A C#endif이게 다에요~ #endif는 반드시..
무효화 영역을 설정할때, 즉 WM_PAINT를 호출하기 위해 주로 쓰는 명령어는~~ BOOL InvalidateRect(HWND hWnd, CONST RECT *lpRect, BOOL bErase); 인데 자~ 다음같은 명령을 한번 처리해보도록 하죠 static int tmp=333; //333은 0이나 1이 아니도록 아무거나 써준 숫자랍니다. WM_PAINT: if(tmp == 0) process tmp0; el..
메모리DC를 생성하고 바로 BitBlt로 hdc에서 memDC로 옮기면 옮겨지지 않습니다. 이유가 뭘까요~? MemDC는 생성직후의 크기가 1x1이기 때문이지요~ HBITMAP hBit; HDC hdc, hMemDC; WM_CREATE: hdc = GetDC(hWnd); hBit = CreateCompatibleBitmap(hdc,1024,768); hMemDC = CreateCompatibleDC(hdc); &nb..
내가 고등학교 1학년때 WINAPI를 처음 접했을 때, 가장 몰랐던 것이 lParam과 wParam에 관한 것이었다.(지금 생각해 보면 참 웃기다.) 둘을 왜 굳이 따로 쓰는거여!!? 일단, 도대체 여기저기서 발견 되는 wParam과 lParam은 무엇인고?? 아주 쉽게 생각해서! 기본(default)으로 지정 되어 있는 기본 인자! 라고 생각하면 된다. 우리가 MOUSE를 컨트롤 하기 위해 메세지에서 WM_LBUTTONDOWN을 받았다고 하면, ..