본문 바로가기

프로그래밍

C 표준 라이브러리 함수 출처 ; http://blog.naver.com/kkwwhh7/100003308350 1. 데이터 변환 함수 2. 디렉토리 조작 함수 3. 버퍼 조작 함수 4. 파일 조작 함수 5. stream 입출력 함수 6. Low level 입출력 함수 7. Mathematics 8. 메모리 조작 함수 9. 탐색과 정렬 함수 10. 문자열 조작 함수 11. 시간 함수 12. 문자 분류 및 변환 함수 13. 기타 함수 1. 데이터 변환 함수 문자나 문자열을 수치 값으로 변환시키거나 대문자를 소문자로 소문자를 대문자로 변환하는 함수로 stdlib.h에 정의되어 있다. 헤더 파일 : #include atof 형식 : double atof(char *string) 설명 : 문자열을 부동소수점 값으로 변환하는 함수 부동소수.. 더보기
리치 에디트 컨트롤(CRichEditCtrl) 2007/10/28 - [프로그래밍/VC/VC.NET/Cs] - 공통 컨트롤 종류 2007/10/28 - [프로그래밍/VC/VC.NET/Cs] - 리스트 박스 이용하기 리치 에디트 컨트롤은 여러개의 라인문자열을 손수 처리 할 수 있다. RTF를 지원하고, 일반 에디트 컨트롤과 달리 여러 기능이 추가 되었다. 문단이 있어서 폰트등의 속성을 제어 할수 있다. CHARFORMAT 구조체 맴버 bCharSet logfont 구조체, ifCharSet멤버변수에 사용할 수 있는 아무 값이나 사용가능 bPichAndFamily 폰트페밀리 피치를 지정 cbSize CHARFORMAT 구조체 크기 지정 crTEXTColor 문자열 텍스트 색상 지정 dwEffects 출력 효과 지정 dwMask 구조체 맴버가 유효값을 가.. 더보기
공통 컨트롤 종류 2007/10/28 - [프로그래밍/VC/VC.NET/Cs] - 리치 에디트 컨트롤(CRichEditCtrl) 2007/10/28 - [프로그래밍/VC/VC.NET/Cs] - 리스트 박스 이용하기 애니메이션 컨트롤 - 윈도우 동영상 파일 AVI 을 재생하는 컨트롤. 헤더 컨트롤 - 리스트 컨트롤 상단에 제목을 붙이는데 이용. 프로그레스 컨트롤 - 윈도우에서 파일복사/삭제시 진행상황. 트리 컨트롤 - 계층구조를 갖는 항목을 보여주는 컨트롤. 리스트 컨트롤 - 아이콘,목록,보고서형태의 아이템이 나타남. 이미지 리스트 컨트롤 - 이미지 전문관리 컨트롤. 슬라이더 컨트롤 - 트랙바. 불연속값, 범위의 값을 입력받을 경우. 툴바 컨트롤 - 여러개의 버튼을 묶어 관리. 상태바 컨트롤 - 시간,날짜등의 참고정보 툴팁.. 더보기
모달(Modal) / 모달리스(Modeless) 다이얼로그 박스 모달(Modal) 다이얼로그 박스. 이놈은 다일로그 박스의 다른 부분(바깥부분)을 클릭할때 삑삑~~ 거리면서 다른 곳을 손 못되게 거리는 넘이 모달 다이얼로그 박스입니다. 이넘은 다이얼로그 박스가 종료되기 전까지 다은 윈도우를 선택할수 없게 디자인 되어있습니다. 배째라 이거죵.. ㅋㅋ 모달리스(Modeless) 다이얼로그 박스. 요놈은 버튼을 누르지 않아도 다른 윈도우를 선택해서 이용할 수 있는 경우. 여기에 속합니다. 다이얼로그 박스의 모달 / 모달리스 의 형태는 실행시에 결정되는 겁니다. 모달리스 다이얼로그 박스는 DoModal() 함수대신 Create() 함수 이용한다. . 모달 모달리스 다이얼로그 박스 생성 CDialog::DoModal() CDialog::Create() 다이얼로그 박스 소멸 C.. 더보기
리스트 박스 이용하기 간단한 리스트 박스를 이용해서 리스트 박스 컨트롤 을 살펴보자. 생성컨트롤. 리스트 박스 ID : IDC_LIST1 에디트 ID : IDC_NAME 버튼 ID : IDC_ADD ID : IDC_REMOVE ADD버튼에 다음과 같은 함수를 코딩한다. void CListBoxDlg::OnBnClickedAdd() { CString strName; CListBox *pListBox = (CListBox*)GetDlgItem(IDC_LIST1); GetDlgItemText(IDC_NAME,strName); if(!strName.IsEmpty()) { pListBox->AddString(strName); SetDlgItemText(IDC_NAME,L""); } } REMOVE버튼 함수 void CListBoxDl.. 더보기
임베디드 개발자 입문-5 임베디드 개발자 입문-5 저 자 : 박철 출판일 : 2004년 1월호 무엇을 준비해야 할까? 앞서 살펴봤던 것과 같이 우리가 이제껏 알고 있던 그리고 흔히 접해왔던 일반적인 컴퓨터 기반의 하드웨어, 소프트웨어 개발과는 달리 임베디드 시스템의 경우엔 그 개발 환경 구축부터 개발에 이르기까지 여러 가지 상이한 점들이 존재하기 때문에 처음 이를 접하는 개발자들은 다소 혼란스럽고 적응에 실패하기도 한다. 그러나 임베디드 시스템 역시 CPU(프로세서)와 메모리로 되어 있는(어느 특정 목적을 위해 개발된) 조그만 컴퓨터라 생각하고 개발에 임한다면 그리 어렵지만은 않을 거라고 필자는 확신한다. 즉, 임베디드 시스템 개발시 다음의 기본 기술 요소들만 확실하게 닦아 놓는다면 나름대로 쉽게 적응할 수 있지 않을까 싶다. .. 더보기
초간단 다이얼로그박스 생성하기 VS2005에서 작성한 글입니다. 먼저 리소스에서 우측버트을 눌러 추가-> 리소스 를 클릭한다. 리소스 추가에서 다이얼로그(Dialog)를 선택하고 새로만들기를 클릭 리소스에 보면 다이얼로그박스가 나와있다... 다이얼로그를 선택하고 속석을 클릭하게되면, 속성탭이 나온다. 더보기
Ellipse 그리기. 랜덤 함수를 써서 윈도우에 다양한 타원.. 간단하게 CDC::Ellipse() 함수를 이용해서 윈도우에 랜덤한 타원을 출력시키는 프로그램. CBrush와 CPen으로 브러시와 펜을 생성및 초기화 하고 SelectObject 함수로 DC에 선택한다. #include class CEllipseApp: public CWinApp { public: virtual BOOL InitInstance(); }; CEllipseApp theApp; class CMainWnd : public CFrameWnd { public: CMainWnd(); ~CMainWnd(); afx_msg void OnTimer(UINT nIDEvent); DECLARE_MESSAGE_MAP(); }; void CMainWnd::OnTimer(UINT nIDEVENT) { CClien.. 더보기
윈도우즈 그래픽 출력함수 윈도우 그래픽 출력함수들은 모두 CDC멤버함수로 되어있다. GDI객체를 프로그래머가 만들어서 사용할수도 있다. 일반적으로 내부에 있는 GDI객체를 Stock object라 한다. 이는 CDC::SelectStockObject함수를 이용해서 사용할 수 있다. 이것도 마찬가지로 이전의 DC에 설정된 GDI오브젝트를 리턴하게 된다. 작업을 끝낸후 다시 복구해야 한다. 픽셀 관련함수 CDC::SetPixel() CDC::GetPixel() 선그리기 함수 CDC::MoveTo() CDC::LineTo() CDC::PolyLine() CDC::Arc() CDC::PolyBezire() 타원과 다각형 그리기 함수 CDC::Rectangle() CDC::RoundRect() CDC::Ellipse() CDC::Chor.. 더보기
윈도우 그래픽 프로그래밍 OnDraw (환경 : VS 2005에서 실행하였다.) 간단하게 프로젝트에서 Line 이란 프로젝트를 생성한다. single document로 생성. 그중 view 클래스에서 OnDraw함수를 찾는다. CLineView::OnDraw() . 이넘이 실질적으로 윈도우에 그림을 뿌려준다... code ---------------------------------------------------------------- void CLineView::OnDraw(CDC* pDC) { CLineDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다. CPen penRed(PS_SOLID,0,RGB(2.. 더보기
부트로더의 기본 구현 1 저 자 : 유영창 출판일 : 2003년 12월호 부트로더의 주 임무는 커널이 동작할 수 있는 환경을 구성하고 커널을 시작하는 것이다. 정의는 간단하지만 프로세서를 정상적으로 동작시켜야 하기 때문에 그리 만만한 일이 아니다. PXA255 프로세서에서 동작하는 이지부트 프로그램은 두 부분으로 나눠져 있다. 최소한의 환경 설정을 하는 start 프로그램 부분이 있으며, 커널이 부팅하도록 지원하고 개발의 편리함을 제공하는 main 프로그램이 있다. start 프로그램은 모두 ARM 어셈블러로 구성돼 있고 스택이 없기 때문에 다중 호출도 하지 못하는 가장 열악한 환경의 프로그램이다. 이번 호에는 이지부트의 시작점인 start.S를 집중적으로 살펴보고자 한다. 연+재+순+서 1회 2003.10 | 임베디드 프로그래.. 더보기
보드를 살려보자-6 저 자 : 유영창 출판일 : 2003년11월호 == Makefile 리눅스에서 동작하는 gcc는 기본적으로 make 유틸리티를 사용하여 컴파일한다. RAD 툴을 사용하던 프로그래머라면 이 make 유틸리티가 다소 어렵게 느껴질지 모르지만 리눅스 프로그래머거나 기존 펌웨어 프로그래머라면 항상 접하는 유틸리티이다. 리눅스에서 사용되는 make 유틸리티는 매우 유용한 도구이고 개념만 익히고 나면 쉽다는 것을 알 수 있다. make 유틸리티는 기본적으로 Makefile이라는 이름을 갖는 파일을 필요로 한다. 이 Makefile이 바로 컴파일에 관련된 모든 조건을 기록해 놓는 파일이다. 보통 이 Makefile은 구성이 비슷하기 때문에 한번 자신만의 구성을 만들면 이후에 조금씩 수정해서 쓰면 된다. make에 관.. 더보기
보드를 살려보자-5 저 자 : 유영창 출판일 : 2003년11월호 == start.S 어셈블러 에서 가장 먼저 보이는 것은 (1)인데, 이렇게 선언되면 이후 코드의 어드레스 영역이나 기타 조건은 링커 스크립트에 선언된 .text라는 선언에 영향을 받는다. 일반적으로는 프로그램 코드 영역을 의미한다. 하드웨어 리셋이 발생하면 ARM은 0x00000000번지의 명령을 수행한다. 이 번지는 링커 스크립트에 의해서 _start 라벨에 맵핑된다. 좀더 정확히 말하면 링커 스크립트에서 .text에 대해 0x00000000번지에 할당되어 있기 때문이고 _start 라벨이 가장 먼저 기술되었기 때문이다. 이 _start가 0x00000000번지이기 때문에 이 라벨 이후에 인터럽트 벡터 테이블이 들어간다. 그래서 각 벡터 테이블이 수행할 .. 더보기
ARM 부트로더 제작기 보드를 살려보자-1 저 자 : 유영창 출판일 : 2003년11월호 임베디드 시스템에서 하드웨어 설계가 끝나고 제작 후 샘플 보드가 나왔을 때 가장 먼저 하는 것이 보드에 대한 검증이다. 필자가 다니는 회사에서는 이것을 ‘보드 살리기’라는 말로 표현한다. 이 보드 살리기는 운이 좋으면 바로, 운이 나쁘면 언제 끝날지 모르는 피 말리는 시간이 필요하다. 이런 현상이 발생하는 이유는 문제의 원인이 하나가 아니고 여러 가지가 혼재하기 때문이다. 어떤 문제를 해결하는 가장 빠른 방법은 문제의 종류를 구분하는 것이다. 그런데 이 경우에는 이 자체도 매우 어렵다는 것이다. 하드웨어 문제인가? 소프트웨어 문제인가? 때문에 보드 살리기에 필요한 과정을 살펴보고 부트로더와의 관계를 살펴보자. 연+재+순+서 1회 2003.10 | 임베디드 프.. 더보기
임베디드 프로그래머와 부트로더-5 저 자 : 유영창 출판일 : 2003년 10월호 == ARM 프로세서 PXA255는 앞서 언급했듯 ARM 계열이다. 삼성이나 다른 회사에서 만든 프로세서가 ARM 코어를 라이선스한 것과는 다르게 아예 설계 자체를 사서 인텔 자사의 기술을 더한 프로세서이다. 그러나 결국은 이것도 개발자 입장에서 보면 ARM의 한 계열로 봐도 무방하다. 이 프로세서를 이해하면 ARM 코어를 사용하는 다른 프로세서들도 어느 정도 이해가 가능하다 그렇다면 ARM이란 것은 어떤 것일까? 아무래도 이 연재가 ARM용 부트로더를 작성하기 위한 것이므로 ARM 프로세서에 대해 모르고 갈 수는 없다. 그래서 ARM에 대해 잠깐 살펴보자. 우리가 알고 있는 펜티엄은 인텔에서 제작하고 있는 프로세서이다. 하지만 ARM에서 만든 ARM 프로.. 더보기