본문 바로가기
반응형

C++15

[피보나치 수열 소스] 피보나치 수열 알고리즘 C++ 소스 피보나치 수열 알고리즘 피보나치 수열이란 앞의 2수를 더한 수가 그다음 숫자가 되고 다시 2수를 더하것이 그다음 숫자게 되게 반복되는 숫자들입니다. 피보나치 공식을 보면 쉽게 이해 할 수 있습니다. 알고리즘 문제나 면접문제로 자주 나오니 외워두면 괜찮습니다. 일단 재귀함수로 피보나치를 구현하는 것이 편리합니다. 재귀 함수 없이도 구현이 가능하지만 조금 번거러울 수 있습니다. 피보나치 수열 공식 f(1) = f(2) = 1 f(n) = f(n-1) + f(n-2) 피보나치 수열 C++ 소스 #include int fib(int n); int main(int argc, char* argv[]) { int input; cout > input; for(int i=1; i 2011. 3. 23.
MessageBox MB_DEFBUTTON2 속성으로 MB_YESNO 버튼 NO 자동선택하기 MessageBox 의 MB_YESNO 속성 MessageBox 메시지 박스에서 Yes, No 버튼중 No버튼에 포커스를 자동적으로 두고 싶을때 MB_DEFBUTTON2 속성을 이용할 수 있습니다. 삭제 같은 메세지처리를 할경우 습관적으로 사용자가 엔터를 치게 되면 Yes 버튼에 포커스를 주기 때문에 바로 삭제가 되게 됩니다. 고개의 입장에서는 귀찮아서 엔터를 친것인데 중요한 데이타가 삭제되게 됩니다. 이럴 경우 메세지박스를 보여줄 때 포커스를 No버튼(두번째 버튼에) 포커스를 주어 해결할 수 있습니다. 메세지박스 No버튼에 포커스 주는 예제 if( MessageBox(_T("삭제하시겠습니까??"), _T("삭제"), MB_YESNO | MB_ICONINFORMATION | MB_DEFBUTTON2 ) .. 2011. 2. 9.
LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 에러 (crt0.obj) : error LNK2001: unresolved external symbol _main 에러가 발생하였을 경우, Project Settings 을 확인하여 (crt0.obj) : error LNK2001: unresolved external symbol _main 에러를 잡을 수 있습니다. Project 설정에 보면 _ATL_MIN_CRT 라는 설정이 Preprocessor definitions 에 들어 가 있는 것을 알 수 있습니다. _ATL_MIN_CRT 문자를 지워서 컴파일을 하면 에러가 없이 컴파일이 됩니다. ATL/WTL의 위져드로 생성을 할 .. 2011. 1. 20.
[debug assertion failed] debug assertion failed 에러 해결 debug assertion failed 에러 해결방 debug assertion failed 에러가 VC++ 할때 발생하였다. 무엇이 잘못되어 debug assertion failed 에러가 났는 지 알 수 가 없었습니다. 해결방법에 대해서 고민하였는 데 이럴 경우 간단히 해결 할 수 있습니다. debug assertion failed 에러가 발생하였을 때는 window을 Create하는 부분이나 초기화하는 부분에서 예기치못하게 접근하는 코드가 있을 것이다. 이런 부분에 무작위로 중단점을 잡고 하나씩 잘못 접근하고 있는 코드를 찾아서 해결하면 된다. 해결방법 debug assertion failed 에러발생시, 생성이나 초기화 부분에 중단점을 걸로 잘못 접근하는 코드를 찾아 해결합니다. 2011. 1. 4.
[에러] uuid.lib(ocidl_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module uuid.lib(comcat_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module 환경사항 Windows XP Service pack 3 + Visual studio 6.0 + Platform SDK Server2003 R2 사용 에러 메시지 uuid.lib(ocidl_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module Error executing link.exe. 해결책 C:\Program Files\Microsoft Platform SDK\Lib 폴더의 uuid.lib 파일의 이름을 삭제 또는 변경해주면 됩니다. 2010. 7. 19.
c++ 현재시간 구하기 c++ 현재시간 C++ 현재시간을 구한다. 1 CString strToday; // 오늘 날짜를 받을 변수. 2 3 SYSTEMTIME time; // 시간 구조체. 4 ::ZeroMemory(reinterpret_cast(&time), sizeof(time)); // time 초기화. 5 6 ::GetLocalTime(&time); // 현재시간을 얻음. 7 strToday.Format (_T("%4d%02d%02d%02d%02d"), time.wYear ,time.wMonth ,time.wDay, time.wHour, time.wMinute); // 형식에 맞게 받음.. 8 2010. 5. 31.
GetWindowText 함수의 용도 GetWindowText 함수 사용의 예) 1 const nBuffSize = 512; // 버퍼의 사이즈를 정한다. 2 char szBuff[nBuffSize], buf2[nBuffSize]; // 버퍼공간을 선언한다. 3 m_wndResiNo1Edit.GetWindowText(szBuff, nBuffSize); //해당컨트롤 변수의 메소드로 가지고 있는 문자열을 받는다. 4 m_wndResiNo2Edit.GetWindowText(buf2, nBuffSize); //컨트롤변수로 해당 버퍼로 문자열을 가져온다. 영어로 된거 읽어라. MSDN 보다 좋은거는 없다. 영어공부도 하고 얼마나 좋냐~ CWnd::GetWindowText This method copies the CWnd caption title i.. 2010. 5. 26.
C++ GDI Font, Brush 생성과 삭제 C++ GDI Font, Brush 생성과 삭제 c++ GDI 객체생성 하는 방법과 삭제하는 방법입니다. Font 생성과 Brush 생성하고 객체를 해제를 꼭해주어야 합니다. 뭐 어려운 내용은 없고 폰트 생성 옵션과 브러쉬 생성 옵션을 숙지 하시면 됩니다. 1 ////////////////////////////////////////////////////////////////////////// 2 /** 3 @brief : CreateGDIObject 4 5 @date : 2010-05-25 오후 4:27:27 6 @author: Kwangho Park 7 @remark: GDI 생성. Font, Brush 등. 8 수정내역 9 -------------------------------------------.. 2010. 5. 25.
다이얼로그에 라인, 사각형 등의 UI 그리기 다이얼로그에 라인, 사각형 등의 UI 그리기 C++ 에서 UI 작업하는 함수이다. 라인을 그리거나 도형을 그리는 함수이다. 펜 객체를 써서 라인을 그리고 도형을 그리는 것이다. 주의해야 할것은 .. 펜이라는 객체는 이전에 쓰던 펜을 저장해두고 새로 쓸펜을 지정해준다. 그리고 다시 이전 펜으로 복원해주고 새로 쓴펜을 삭제해주면 된다. 1 ////////////////////////////////////////////////////////////////////////// 2 /** 3 @brief : OnUIDraw 4 5 @date : 2010-05-20 오전 9:25:16 6 @author: Kwangho Park 7 @remark: UI 그려주기. 8 수정내역 9 ---------------------.. 2010. 5. 20.
ComboBox 의 Item과 List 구성하기 ComboBox 의 Item과 List 구성하기 연관글 보기 2010/05/13 - [개발언어/C++] - ComboBox의 GetCurSel의 ItemDate를 가져와서 SQL Querey 하기 ComboBox의 Item과 List를 DB를 통해서 구성합니다. 1 void CSearchModule::LoadVIPInfo() 2 { 3 // VIP ComboBox 초기화 4 m_comboVIP.ResetContent(); 5 m_comboVIP.AddString(_T("전체")); 6 m_comboVIP.SetItemDataPtr(0, new CString(_T("전체"))); 7 8 // SQL Query 작성 9 CString strQuery = _T(""); 10 strQuery.Format(_T(.. 2010. 5. 14.
REFLECT_NOTIFICATIONS REFLECT_NOTIFICATIONS This macro reflects notification messages back to the child window, control, that sent them. Specify this macro as part of your message map. 만약 메시지가 부모윈도우 뿐만아니라 해당컨트롤까지 전달되기를 원한다면 메시지멥 매크로에 REFLECT_NOTIFICATIONS(); 을 추가해주어야 합니다. 1 public: 2 BEGIN_UPDATE_UI_MAP(CMainDlg) 3 END_UPDATE_UI_MAP() 4 5 BEGIN_MSG_MAP(CMainDlg) 6 MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) 7 8 // D.. 2010. 5. 3.
WTL Tutorial 사이트 출쳐: http://jacking75.cafe24.com/WTL/Index.htm 사이트 갈무리한 웹파일 : 웹사이트 내용 MS워드로 정리함 : 아래의 WTL의 설명은 본인이 일본의 http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/index.html 에서 가져온 자료를 번역기로 1차 번역 후 본인이 약간 손을 본 자료입니다. WTL에 대해서 좋은 정보를 얻으셨다면 위 사이트의 주인의 덕택입니다. ATL/WTL 처음 시작 WTL의 인스톨 Hello, ATL/WTL 윈도우 윈도우 클래스 정보 윈도우 특성 메시지 ATL의 메세지 맵 WTL의 메세지 맵 체인 대체 메세지 맵 메세지 루프 메시지 필터 아이들 핸들러 GDI 디바이스 컨텍스트 펜 브러쉬 폰트 팔렛트 비트.. 2010. 5. 3.
C++ Standard Library STL 튜토리얼 레퍼런스 6~9장 C++ Standard Library STL 튜토리얼 레퍼런스 6~9장 ▣ 6장 STL 컨테이너 6.2 Vector (벡터) - 컨테이너에 데이터가 삽입 될수록 메모리는 늘어나게 됩니다. 연속된 메모리 기반이므로 메모리가 커지면 기존 메모리를 삭제하고 새로운 메모리를 재할당해주어야 합니다. 그러므로 컨테이너요소의 개수가 유동적인 곳에서는 비효율적이다. 능력 -시퀀스 컨테이너, 램덤 액세스 지원, 연속 메모리 기반 컨테이너. - size(), empty(), max_size(): 사이즈 관련된 함수 제공. - capacity() : 메모리 안에 vector가 메모리의 재할당 없이 가질 수 있는 원소의 개수를 반환. 초과한다면 내부메모리를 재할당해야 함. - vector 용량이 중요한 이유 : 따라서 속도가.. 2010. 4. 30.
STL C++ Standard Library 튜토리얼/레퍼런스 요약(3장~5장) STL C++ Standard Library 튜토리얼/레퍼런스 ▣ 3장 일반적인 개념 1. namespace std - 사용법 1. 식별자에 대해서 명시적으로 namespace의 이름을 적어주는 방법 예) std::cout 2010. 4. 23.
[C++] #ifdef #ifdef - #define으로 정의된 것이 있는지 검색하고, 없으면 #ifdef 다음줄 내용을 #define선언한다. #ifndef - #define으로 정의되어 있으면 #define을 해제한다. #ifdef __cplusplus extern "C" { #endif - __cplusplus가 define되어있으면 extern "C"{ 를 삽입하라는 뜻 - C와 C++간의 링커 재사용을 위해 쓴다. 처음 C++을 설계할때 컴파일러만 새로 설계하고 링커는 기존 라이브러리를 재사용 하기 위해 기존의 C링커를 그대로 사용하는 것이다. -C++에서는 함수 다중선언 등의 기능을 지원하는데 각 함수명을 인자에 따라 다르게 부여하는 Name Mangling 이 된다. - extern "C"{ 는 Name mangl.. 2010. 3. 24.
반응형