본문 바로가기

old drawer

[C/C++] INI 함수 클래스 /////////////////////////////////////////////////////////////////// // Ini.h // // "CIni" is a simple API wrap class used for ini file access. // The purpose of this class is to make ini file access more // convenient than direct API calls. // // This file is distributed "as is" and without any expressed or implied // warranties. The author holds no responsibilities for any possible damages // o.. 더보기
[MFC] File Operations Source /** \file FileOperations.h Project: FopDemo\n Project type: MFC App\n Author: Vinnichenko Alexey\n E-mail: subj@mail.ru\n Description: Declaration of CFileOperation class and CFileExeption class. */ #include "resource.h" #define PATH_ERROR -1 #define PATH_NOT_FOUND 0 #define PATH_IS_FILE 1 #define PATH_IS_FOLDER 2 class CFExeption { public: CFExeption(DWORD dwErrCode); CFExeption(CString sErrTex.. 더보기
[MFC] Type Casting Source CString -> char (포인터 값으로 저장) CString str = "Hello"; char * ch = NULL; ch = (LPSTR)(LPCSTR)str; 또는 ch = str.GetBuffer(str.GetLength()); // str의 포인터 값을 ch에 저장한다. CString -> char (배열에 복사) CString str = "Hello"; char ch[100] = {0,}; strcpy(ch, (LPSTR)(LPCSTR)str, str.GetLength()); // NULL을 만나기 전까지의 문자를 str에서 ch로 복사한다. char -> CString (복사) char ch[] = "Hello"; CString str; str = ch; // operator = 연산자.. 더보기
[English] 8/4 Topic for the 2nd session Useful Expressions 1. He stood me up. “그가 날 바람맞혔어.” To stand somebody up: To deliberately fail to meet somebody you have arranged to meet, especially somebody you are having a romantic relationship with. 2. My mouth is watering. “ 군침이 돈다.” One’s mouth is watering: Thinking about or looking at delicious dishes, one’s mouth gets wet with saliva. 3. Stay the course! “ 그대로 계속가!” To stay the course: .. 더보기
[MFC] Tab Control 사용법 MFC프로그램을 하다보면, Tabcontrol을 만들어야 하는 경우가 생길 것이다. 그 탭컨트롤을 만드는 과정을 알아보자. 모든 프로그램은 Dialog based로 하는 것을 기준으로 한다. 우선 dialog based 프로젝트를 만든다. 다이어로그 베이스 프로젝트는 앞의 포스트에서 미리 설명을 하였다. test라는 프로젝트 이름으로 만들었다. 만든 뒤에, TODO:…. 된 부분을 지우고, 그림에서 보듯 Toolbox에서 Tab Control을 드래그 해서 아래와 같이 화면에 붙여 넣어준다. 만약 Toolbox가 보이지 않는다면, 메뉴바의 view에서 toolbox를 찾을 수 있다. 이렇게 만들어진 Tab에 이름을 정해주자. 그림에서 보듯이 Add Variable을 클릭한다. (변수 추가) 새로 창이 뜨.. 더보기
[English] 수의 일치 (Subject and Verb Agreement) 주어와 동사의 일치 사실 주어의 인칭과 수에 따라 동사를 맞춰주는게(I 다음에 am이 오는것과 같은) 별거 아닌것 같아 보이지만 은근히 혼동되고 어려울때가 많이 있습니다. 아래에는 주어와 동사의 일치에 관한 몇가지 법칙이 나와 있습니다. 참고하시기 바랍니다. Basic Rule. 가장 기본이 되는 법칙은 단수의 주어에는 단수의 동사를, 복수의 주어에는 복수의 동사를 쓰는것 입니다. 이때, 주어가 단수인지 복수인지를 아는것이 기본이 되는 일이며 그 다음으로 동사가 단수인지 복수인지를 알아야 합니다. * Hint : 동사의 복수는 명사끝에 s를 붙이는 식으로 만들어 지지 않습니다. (오히려 s를 붙이지 않는 경우가 많습니다) 어떤 동사가 단수인지 복수인지 구별 하는 방법은 he나 she 또는 they등과 함.. 더보기
[Programming] 3D 프로그래밍에 필요한 간단한 수학 공식 소스 3d 프로그래밍을 하면서 필요한 공식들을 한 곳에 모아봤습니다. 공식은 아는데 막상 구현하기 귀찮고 찾자니 이곳저곳에 있어서 불편했었는데 이참에 이렇게 모아서 정리했습니다. 앞으로도 조금씩 추가할 생각이구요..그럼 즐프~! 함수 선언부 //2점이 이루는 백터 구하기(점1, 점2, 결과) void HJGetVector(const float *p1,const float *p2, float *result); //점과 평면의 거리(점, 평면의 방정식) float HJGetLenPointFromPlane(const float *p,const float *plane); //3점으로 이루는 외적 구하기(점1,점2,점3) void HJOuterPoroduct(const float *p1,const float *p2,c.. 더보기
[OpenGL] 물체 중심점을 원점으로 물체 회전하기 더보기
[C++] 자료형 크기 변수형에 대해 고민하다가 싹 조사하게 되었다. 엑셀 파일과 소스코드를 첨부했으니 필요하신분은 얼마든지 사용해주셔도...ㄷㄷㄷ 옛날부터 프로그래밍을 배운게 아니라 요즘들어 하고있는 나에게 다양한 변수명은 상당히 혼란스럽고 골칫덩이였다. 특히나 int와 long가 완전히 똑같으리라고는 상상도 하지 못했는데...끙... 실제 출력값 타입 크기 최소 최대 define 비고 약수 SHORT 2 -32,768 32,767 short 32767 USHORT 2 0 65,535 unsigned short 65535 INT 4 -2,147,483,648 2,147,683,647 int 약 21억 INT8 1 -128 127 signed char SHORT 보다 작음 127 INT16 2 -32,768 32,767 sig.. 더보기
[MFC] CString에서 line by line으로 읽기 CString teststr = _T("Line1\nLine2\r\nLine3\nLine4"); CString outputstr; for (int i = 0; i < teststr.GetLength(); i++) { if (teststr[i] == '\n') { MessageBox(outputstr, _T("String Parsing"), MB_OK); outputstr = ""; } else { if (teststr[i] != '\r') outputstr += teststr[i]; } } 더보기
[MFC] 기본 열기 동작(ID_FILE_OPEN 리소스) 재정의 하기 MFC에서 기본적으로 새파일,열기는 아래와 같이 구현됩니다. BEGIN_MESSAGE_MAP(CSpriteWndApp, CWinApp) // Standard file based document commands ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen) // Standard print setup command ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() CWinApp 라는 Base 클래스의 OnFileOpen() 함수를 호출하게 되는 것이죠. 위 과정에서 통해서 일어나는 일을 순서대로 정리하자.. 더보기
[OpenGL] 관련 링크 마우스 이벤트 http://www.cyworld.com/hello_sds/3860673 더보기
[VC++] 단축키 모음 VC++ 단축키 Ctrl + Tab Edit하고 있는 Child Window 간의 이동 Ctrl + F4 현재 Edit하고 있는 Child Window를 닫기 Ctrl + I >> 문자열 입력 점진적으로 문자열 찾기 (Incremental Search) Ctrl + F3 현재 커서에 있는 문자열 찾기 (블록 지정 안 해도 됨) Shift + F3 현재 커서에 있는 문자열 찾기 backward F3 찾은 문자열에 대한 다음 문자열로 이동 (Next Search) Ctrl + H 문자열 찾아 바꾸기 (Replace) Ctrl + Left/Right Arrow 단어 단위로 이동 Ctrl + Delete 또는 Backspace 단어 단위로 삭제 Ctrl + F2 현재 라인에 북마크 지정/해제 F2 지정된 다음 .. 더보기
[MFC] MFC 4대 클래스간 참조 방법 //각각 헤더파일 include #include "MainFrm.h" //메인프레임 헤더파일 #include "ClassDoc.h" //Doc클래스 헤더파일 #include "ClassView.h" //View를 include 할때는 반드시 Doc 헤더파일이 위에잇어야한다 #include "Class.h" //APP Class 의 헤더파일 void CClassView::OnMenuView() //뷰클래스 CClassApp *pApp=(CClassApp *)AfxGetApp(); //View -> App CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //View -> MainFrm CClassDoc *pDoc=(CClassDoc *)pMain->GetActiveDo.. 더보기
[MFC] 각종 기능 정리 MFC 요점정리!! 1. DC얻기 CClientDC dc(this); 2. Client 영역 구하기 GetClientRect(&rect); WM_SIZE 메시지발생후 cx,cy 사용 3. 문자열 사각형안에 그리기 pDC->DrawText(문자열,사각형,Style); Style: DT_BOTTOM - 문자열을 사각형 맨아래줄에배열 반드시 DT_SINGLELINE과 함께사용 DT_CENTER - 문자열을 가로중앙에 배치 DT_VCENTER - 문자열을 세로중앙에 배치 DT_LEFT,RIGHT - 문자열을 좌,우로 배치 DT_SINGLELINE - 문자열을 한줄로만 쓴다 4. Brush 사용법 CBrush brushname(RGB(red,green,blue)); //브러쉬 생성 CBrush *oldBrush=.. 더보기
[ETC] WindowXP USB 부팅 Link http://blog.naver.com/cara9963?Redirect=Log&logNo=70156894602 더보기
[OpenGL] OpenGL 라이브러리 설치 방법 헤더 파일 LIB 파일 DLL 파일 glut.h glut.lib glut.dll GL.h glut32.lib glut32.dll GLU.h GLU32.lib GLU32.dll GLAUX.h GLAUX.lib OPENGL32.dll OPENGL32.lib ※ 설치법 간단히 위의 파일들을 적절한 위치에 붙여넣기만 하면 됩니다. ● 헤더파일 : C:\Program Files\Microsoft Visual Studio\VC\include\gl 또는 C:\Program Files\Microsoft Visual Studio\VC\include 에 붙여 넣어 주시면 됩니다. ● LIB 파일 : C:\Program Files\Microsoft Visual Studio\VC\lib 에 붙여넣기 ● DLL 파일 : 32b.. 더보기
[OpenGL] MFC 다이얼로그 기반에서 OpenGL 셋팅하기 안녕하세요 ^^ 오랜만에 OpenGL 강좌를 올리네요. 그동안 저한테 많은 일들이 일어났네요. 학교 근처 2년 반동안 지냈던 자취방을 떠나, 회사 근처로 이사도 하고, 간지 나는 노트북도 샀네요 ^^ 주저리 주저리~ ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: MFC Dlg (다이알로그) 기반에 OpenGL 셋팅 하기 OpenGL 을 이용하여, 빨간 사격형을 띄어 보도록 하자 ! 완성 프로그램 : http://blog.naver.com/silzon/30021589980 위 링크에서 파일을 다운 받길 바란다. 많은 부.. 더보기
[Synodus OB] 공 지 안녕하세요, 다들 봄을 만끽하고 계시나요?^^ 저의 한없는 게으름으로 인해 이제야 Synodus OB 모임을 정식으로 공지합니다. 이점 무진장 꾸짖어 주세요... 공지 사항은 아래와 같습니다. - 아 래 - 1. 회칙 확정 - 확정된 회칙은 여기 -> http://istudyhard.tistory.com/entry/Synodus-OB-회칙-v001 2. 회원 확정 - 확정된 명단은 여기 -> http://istudyhard.tistory.com/entry/Synodus-전체-회원-인명부 3. 회비 납부 - 상/하반기 각각 5만원 - 계좌는 단체 카톡방에 별도 공지 - 상반기 회비 납부 기간 : 4/26 ~ 5/3(금) 限 이상 공지였습니다. 다들 즐거운 주말 보내시길 바랍니다. 더보기
[MFC] Keyboard event [키보드 자동입력 구현] [Win32] Keyboard event [키보드 자동입력 구현] VOID keybd_event( BYTE bVk, // virtual-key code BYTE bScan, // hardware scan code DWORD dwFlags, // flags specifying various function options DWORD dwExtraInfo // additional data associated with keystroke ); keybd_event() 함수API 자세한 설정은 MSDN을 찾아볼 수 있다. keybd_event(VK_LWIN,0,0,0); // Window Key keybd_event(0x4C,0,0,0); // L Key // Win_Key + L Key keybd_event(VK.. 더보기
[C/C++] 프로세스명으로 프로세스 종료(함수) 처음 의도는 어떤 프로세스에 시그널을 보내어 자체 로직에 따라 종료하는 로직을 찾은것이다. 하지만 찾는도중 프로세스명으로 프로세스를 종료하는 로직이 있기에 올려본다. 출처는 불분명하여 누가 올렸는지는 알수없다. 프로그램에 내용에 대해서는 차후 설명하기로 하고 VC++에서 컴파일 될수있는 몇가지 옵션만 올려본다. psapi.h는 visual studio 2003에서는 그냥 컴파일이 되며 6.0에서는 SDK를 설치해야만 한다. projectsetting -> link -> Object/library modles에 Psapi.lib를 추가해주어야한다. afx.h를 psapi.h보다 먼저 선언해주어야하며, 이후 컴파일이 순조롭게 진행된다면 문제가 없지만 다음과 같은 에러가 날수가 있다. uafxcwd.lib(t.. 더보기
[C/C++] Visual Studio 2008 단축키 모음 Ctrl + A : 전체선택 Shift + 방향키 : 블록지정 Shift + Ctrl + -> : 오른쪽으로 한 문자씩 선택 Shift + Ctrl + : 다음 문자로 이동 Ctrl + : 자동완성(현재까지 쓴 문자열과 비슷한 변수나 메서드를 알림) Alt + F8 : 블록된 영역 들여쓰기 자동조절 Ctrl + K, F : 들여쓰기 자동조절 Ctrl + TAB : 열린 프로그램 혹은 프로젝트 등의 목록 선택 Ctrl + L : 한줄 잘라내기 Ctrl + U : 선택된 문자열을 소문자로 바꿈 Ctrl + Shift + U : 선택된 문자열을 대문자로 바꿈 * 단축키 찾기 및 지정은 (도구->옵션->환경->키보드)에서 가능. 더보기
[MFC]웹브라우저 컨트롤 호스팅시 스크립트 실행 안되게 하기 웹브라우저 컨트롤을 이용한 어플리케이션을 제작하거나 MSHTML을 이용하여 HTML을 파싱하는 등의 경우에 필요에 따라 웹 페이지의 스크립트를 꺼야 하는 경우가 있습니다. 제 생각에, 이걸 편하기 하기 위해 제공되는게 IDocHostUIHandler::GetHostInfo 메소드인 것 같더군요. VC++ 7 이상에는 MFC CHtmlView에 IDocHostUIHandler 처리 기능이 추가됐기 때문에 그냥 메소드 하나 오버라이드하여 손쉽게 처리할 수 있습니다. 이 내용은 자료실에서 제 ID로 검색해 보시면 찾으실 수 있습니다. 그런데 제 기억으로는 IE 6.0일 때 이 방법을 테스트 해본 것 같고.. 그때 정말 스크립트가 실행 안됐던 것 같은데 지금 다시 해보니 전혀 안 먹더군요. 아무리 해도 스크립트.. 더보기
[ETC]파워포인트에서 이미지 여백을 투명하게 만들기 오피스 파워포인트에 이미지를 삽입할 때, 삽입된 이미지의 여백 색깔이 뒤 배경과 어울리지 않아서 포토샵에서 배경을 투명하게 처리하거나, 디자이너한테 투명하게 처리해 달라고 아부를 해야 하는데, 파워포인트에 있는 기능을 이용하여 이것을 쉽게 처리할 수 있다. 위의 아이폰 이미지 주변에 있는 흰색 여백을 투명하게 바꾸려면, (파워포인트2007 기준이며, 파워포인트2003의 경우도 동일한 기능이 있다.) 1. 아이폰 이미지를 클릭 2. 서식메뉴 >> 조정그룹 >> 다시칠하기 클릭하여, 제일 아래에 있는 "투명한 색 설정" 기능을 클릭한다. 3. 마우스에 연필 모양 같은 것이 생기면, 흰색 여백으로 마우스 포인터를 이동시킨 후, 흰색 여백을 클릭한다. --> 투명하게 바뀌면서 배경색이 흰색 여백 부분을 채운다. 이렇게.. 더보기
[ETC] 국내외 주요 오픈코스웨어 사이트 모음 국내 주요 오픈코스웨어 사이트 • KOCW(Korea Open CourseWare): www.kocw.net 우리나라의 한국교육학술정보원에서 국내 OCW를 총괄하는 대표 사이트 • 펭귄스텝: http://www.penguinstep.net/ 숙명여대 김형률 교수가 운영. 미국 아이비리그 대학 강의, 세계 각국의 주요 뉴스, 외국인을 위한 영어공부 동영상, 유명인의 특강과 인터뷰까지 다양한 동영상으로 채워져 있다. • 한국오픈코스웨어콘소시엄(KOCWC): www.kocwc.org 고려대, 부산대, 서울산업대, 인하대, 한동대 등 국내 17개 대학 참여. • 숙명여자대학교 스노우: www.snow.or.kr 해외 대학을 비롯해 TED 강의, 국내 강의까지 아우른다. • 숙명여자대학교 OCW: http://o.. 더보기
[MFC] SDI View 창 크기 설정 및 조절기능 비활성화 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: CREATESTRUCT cs를 수정하여 여기에서 // Window 클래스 또는 스타일을 수정합니다. cs.cx = 1024; cs.cy = 768; cs.style &= ~WS_THICKFRAME; //창 크기 조절 기능 비활성화 cs.style &= ~WS_MAXIMIZEBOX; //창 최대화버튼 비활성화 return TRUE; } 더보기
[C/C++, MFC] 런타임 라이브러리 프로젝트 속성창 > C/C++ > 코드생성 > 런타임라이브러리에는 4가지 선택사항이 있다. - 다중 스레드(/MT) : 릴리즈 모드시, 정적으로 링크 - 다중 스레드 디버그(/MTd) : 디버그 모드시, 정적으로 링크 - 다중 스레드 DLL(/MD) : 릴리즈 모드시, 동적으로 링크 - 다중 스레드 디버그 DLL(/MDd) : 디버그 모드시, 동적으로 링크 다중 스레드 디버그(/MTd)로 변경한 경우, 만일 mfc를 사용하고 있는 경우, 일반 > MFC 사용 --> 정적 라이브러리에서 MFC 사용 으로 변경해야한다. 이는 라이브러리 링크를 정적으로 변경하였으므로, 라이브러리를 쓸 경우에도 정적 라이브러리를 쓰도록 변경해주어야 하는 이치다. http://blog.naver.com/monoari?Redire.. 더보기
[2013년] 1차 Synodus OB 모임 > 1. Synodus OB 2013 1차 정기총회 가. 시간 및 장소 - 늦은 6시부터 60분간, at 예인스페이스 나. 세부 일정 - 임원 선출 - 회칙 검토 2. Synodus OB 2013 늦은 신년회 가. 시간 및 장소 - 늦은 7시 00분부터 ~, at 비어테라스 나. 세부 일정 - 2013년 신년회 및 단합회 > 1. 예인스페이스(02-3481-1212, 김경환으로 예약~^^) http://map.naver.com/?lng=127.0256157&lat=37.4999865&dlevel=11&mapMode=0&pinId=13568468&pinType=site&enc=b64 2. 비어테라스(02-3452-7858) http://map.naver.com/?lng=127.027328&lat=37.50.. 더보기
[C++]프로그램 실행 ShellExecute(), ShellExecuteEx(), CreateProcess() http://www.codeproject.com/Articles/1842/A-newbie-s-elementary-guide-to-spawning-processes A newbie's elementary guide to spawning processes Introduction Often, we find questions coming from newbies on how to spawn a new process, how to open a particular document with the program associated with it, how to launch a web site, how to bring up the mail client's compose window, how to wait for a pro.. 더보기
[MFC] 버튼에 이미지 입히기 1. Button 생성 2. 속성 창에서 - Bitmap = True - Owner Draw = True 3. 다이얼로그에 CBitmapButton 클래스 멤버변서 하나를 추가 CBitmapButton m_BitmapButton; 4. OnInitDialog() 함수에서 m_BitmapButton.Attach(((CBitmapButton *)GetDlgItem(IDC_BITMAP_BUTTON))->m_hWnd); m_BitmapButton.LoadBitmaps(IDB_BITMAP_BUTTONUP, IDB_BITMAP_BUTTONDOWN, IDB_BITMAP_BUTTONUP, IDB_BITMAP_BUTTONX); m_BitmapButton.SizeToContent(); 를 추가해준다. 여기서 사용된 비트맵.. 더보기