본문 바로가기

프로그래밍

LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 의 의미는 블로그 > 흔적남기기... http://blog.naver.com/ggtmuli9/20033163477 LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 의 의미는 다음과 같다. LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 뭔가 다 비슷 비슷해보이죠? 원래 c와 c++은 string이라는 똑똑한 자료구조형을 compiler차원에서 지원하고 있지 않습니다. 그대신 가장 많이 사용하는 string을 어떻게 저장해야 할지에 대해 고심한 결과... 결국 배열의 끝에 '\0'또는 0 또는 NULL값을 넣어 string을 표현하도록 했습니다. 결국 가장 적은 용량의 string처리와 가장 골치아픈 string처리가 탄생하는 순간이였죠... 더보기
[Control] CSplitterWnd 클래스 변화시키기 블로그 > 정서기의 블로그입니다. http://blog.naver.com/hanjeongseok/20035979136 CSplitterWnd 클래스 변화시키기 이 내용은 마이크로소프트웨어 1999년 6월 내용중 "원리구현, UI를 강화하면 컴퓨터가 즐겁다[1], 특수한 UI를 적용한 스플리터 만들기"의 내용을 참고한 것입니다. 이 글에서 소개한 예제의 소스 원본 글의 예제소스 1. CSplitterWnd 클래스란? CSplitterWnd 클래스는 SDI에서 한번에 둘 이상의 뷰를 보여주는 것을 가능하게 하는 클래스입니다. MDI의 경우 child 윈도우를 여러개 만들어서 둘 이상의 뷰를 보여주지만, CSplitterWnd 클래스를 사용하면 한 화면을 두 개 내지는 그 이상 분할해서 한꺼번에 보여줍니다. .. 더보기
MFC 애플리케이션 수행과정 [프로세스 시작] CWinApp::CWinApp WinMain 프로그램 시작점 ::AfxWinMain ::AfxWinInit(), CWinApp::InitInstance(), CWinApp::Run() 을 차례로 호출 ::AfxWinInit MFC 애플리케이션 초기화 CWinApp::InitInstance 인스턴스 초기화, 프로파일읽음,CDocTemplete객체생성 CSingleDocTemplete 생성자 CWinApp::AddDocTemplete 도큐먼트 템플릿 바인딩 [도큐먼트, 뷰생성] CWinApp::OnFileNew 파일메뉴에서 New 가 핸들러, 도큐먼트 초기화 CDocument::CDocument 생성자 CFrameWnd::CFrameWnd 주 윈도우 클래스 생성자 CFrameWnd::OnC.. 더보기
도큐먼트/뷰 구조(Document/View Architecture) MFC에서의 도큐먼트/뷰구조. 도큐먼트는 APP에서 데이터, 뷰는 그 데이터를 처리해 나타나는 형태. 따라서 하나의 데이터로 여러가지의 표현이 가능해진다. MFC에서는 원칙적으로 데이터와 뷰를 분리해서 사용하도록 하지만, 코딩을 하다보면, 이를 잘 지키지 않는다. 실제적으로 데이터 관리부분과 인터페이스가 비슷해서 분리하기가 까다롭기 때문이다. 그러나 나중을 위해서라도 꼭! 분리해서 코딩하는 습관을 기르도록. 도큐먼트와 뷰 상호간 작용함수들 CView 클래스 - GetDocument : 도큐먼트 객체 포인터를 얻음. - OnDraw : 화면에 그림, 프린트 CDocument클래스 - GetNextView : 뷰리스트에서 다음 뷰를 얻음 - GetFirstView : 첫번쨰 뷰를 가져옴 - UpdateAll.. 더보기
MFC App 클래스 MFC 프로그래밍에서 가장중요하고 핵심적인 클래스들 CWinApp CFrameWnd CView CDocument 이 네가지만 정확히 알고 있으면 기본적 골격을 파악할수있다. [애플리케이션 클래스 : CWinApp] 애플리케이션 전체를 나타낸다. 인스턴스의 초기화, 메세지 루프 세팅. CWinThread 로부터 상속을 받는다. 또한 CDocTemplete라는 도큐먼트템플릿을 가진다. 이넘은 CDocument,CView,CMainFrame객체와 리소스를 관리한다. MFC에선 CWinApp는 하나만 만들어지고, global하다. 이 CWinApp에서 중요한 멤버함수는 InitInstance()함수이다. 즉 CWinApp의 기능중하나인 인스턴스의 초기화와 관련된 함수이며, 인스턴스를 실행할때 초기화 내용을 입력.. 더보기
Visual Studio 2005에서 유니코드문제 이궁... 2005에서 유니코드 문제때문에 계속 에러가 나서... 귀찮다... 아직 적응이 않되서리... 2005에선 기본적으로 유니코드를 사용하도록 해놔서 텍스트를 CString szText = "Urarara"; ... pDC->Draw(szText,&rc,DT_SINGLELINE | DT_CENTER | DTVCENTER); 이런식으로 하면 꼭!!!!! 에러가 난다. 이간 문자의 "Urarara"는 const char*형이고, const wchar_t*형이 아니라는 거쥐... 해결법은 프로젝트 속성에서 유니코드를 않쓰는걸로 하던지(ALT+F7) L"Urarara"로 변경해야 한다 더보기
C++에서와 다른 vs.net 에서의 c++ iosteam.h -> iostream 으로 변환. 이미 포스팅 했으니까 생략. 2005 깔고나서 c++소스 컴파일 하면 거의~~~ 에러. 이놈의 "새로운" 문법들 때문에 손볼데가 많다. 음.. 몇가지 기억나는 넘들. for loop에서의 지역변수는 루프 밖에서 유효하지 않다는거. 예전에 for문에서 조건식에다 바로 변수를 선언할수 있었는데, 이젠 그러면 그 변수를 선언않했다고 나와버린다.... for(int i=0;i 더보기
visual studio 2005에서 LPCWSTR오류문제. 해결방법. 프로젝트 속성에서 언어탭에서 유니코드가 아닌 멀티코드로 바꾸면 LPCWSTR오류는 해결됨. 2005에서 바껴서 너무... 짱나... 더보기
vb.net == c sharp 웹브라우징코드 vb.net == c sharp 웹브라우징코드 VC/VC.NET/Cs 2007/05/21 00:03 http://blog.naver.com/suvisor/40037802140 블링크 :프로그래밍 좋아해 textbox - name : tbURL button - name : btnBrowse webrowser - name : webBrowser VB.NET 소스 private sub btnBrowse_click(byval sender as system.object, byval e as system.eventargs) handles btnBrowse.click webBrowser.navigate(tbURL.text) end sub C#소스 private void btnBrowse_Click(object sen.. 더보기
소리재생 NET Framework 개발자 가이드 방법: 소리 재생 이 예제에서는 플랫폼 호출을 사용하여 두 개의 WAV 파일을, 하나는 포함 리소스로 재생하고 다른 하나는 콘텐츠로 재생하는 방법을 보여 줍니다. Microsoft Visual Studio 2005에서 WAV 파일을 포함 리소스로 구현하려면 속성 창에서 빌드 작업 속성을 "포함 리소스"로 설정합니다. 명령줄에서 컴파일하는 경우 포함 리소스의 컴파일에 대한 내용을 보려면 방법: 명령 프롬프트에서 컴파일을 참조하십시오. 이 예제에서는 Windows CE에서 CoreDll.dll을 사용하여 다음과 같은 네이티브 코드 기능을 제공하는 Sound 클래스를 정의합니다. 파일 이름이나 스트림을 사용하여 소리를 재생하는 플랫폼 호출 메서드 선언 플랫폼 호출 메서드.. 더보기
C언어 구조 % 정말 예~~~ 전에 많이 보던 화면 ㅋㅋㅋ% C 는 main() 함수를 기본으로 한다. main()함수안에 {}로 시작과 끝을 구분한다. [기본구조] /* 주석문*/ #include /* standard in out header file include. 선행처리기. main() { 함수처리 } 이런 형식의 구조를 가지고 수행되어진다. [C언어 기본] *대소문자 구분을 한다. *main()함수가 꼭 필요하다. 없으면 않되.... * 함수는 꼭 {}로 묶어서 구분 * ; 로 문장의 끝을 맺는다. * 주석은 /* */로 묶음. 소스파일 : *.c 오브젝트파일 : *.obj 실행파일 : *.exe [C언어특징] /* 알려진특징들... * 이식성 양호 * 인터페이스용이 * H/W 제어 용이 # 다른건 몰라도 .. 더보기
MFC 애플리케이션 수행과정 원문 : http://blog.naver.com/suvisor/40042649671 [프로세스 시작] CWinApp::CWinApp WinMain 프로그램 시작점 ::AfxWinMain ::AfxWinInit(), CWinApp::InitInstance(), CWinApp::Run() 을 차례로 호출 ::AfxWinInit MFC 애플리케이션 초기화 CWinApp::InitInstance 인스턴스 초기화, 프로파일읽음,CDocTemplete객체생성 CSingleDocTemplete 생성자 CWinApp::AddDocTemplete 도큐먼트 템플릿 바인딩 [도큐먼트, 뷰생성] CWinApp::OnFileNew 파일메뉴에서 New 가 핸들러, 도큐먼트 초기화 CDocument::CDocument 생성자 CF.. 더보기
구글맵 API 이용하기. 2. basic 예제 원본 : http://blog.naver.com/suvisor/40038591269 1. 기본적인 예제. 이제 API KEY 까지 받았으니, 한번 웹페이지에 구글맵을 띄워 바야 하지 않겠는가? ('후니'는 메가패스를 이용하는 관계로 메가패스에서 제공하는 20Mb의 기본 공간에 테스트를 진행하였으니, 알아서들 하시길 호홓) 일단 엄청 간단한 소스를 만들어서 내 홈계정에 올려서 테스트를 해보자. http://home.megapass.net/~l5027309/basic.html 링크에 가서 함 봐라. 정말 간단하게 웹페이지에 들어가지 않는가... 참고로 거긴 Califonia 의 Palo Alto라는 곳이라고 설명되어있다. 그게 어딘지원,... 그럼 소스를 한번 뜯어 먹어보자 여기서도 볼건 없고, body t.. 더보기
구글맵 API 이용하기. 3. 맵에 Control추가하기 예제 원본 : http://blog.naver.com/suvisor/40038592625 첫예제가 너무 쉽지 않았나... 그래서 너무 뽀대가 나질 않는다... 줌인,아웃도 않되고... 그냥... 지도다. 구글맵은 역시 줌인,아웃도 되야하고, 일반,위성,하이브리드 지도도 선택해서 볼수 있어야 하지 않겠는가... .... 해보자. http://home.megapass.net/~l5027309/addcontrol.html 이건 링크고, 아래는 실행화면... 역시 소스를 뜯어보자 . 이번 소스도 간단하게 뜯어보았다. 어떤가 너무 쉽지않은가?? ㅋㅋ 더보기
구글맵 API 이용하기. 4. 맵좌표를 따오자. 원본 : http://blog.naver.com/suvisor/40038594127 저번예제에 이어 이번 예제도 너~~무 간단하다. 좌표가 궁금하다면, 한번 따라해보자. http://home.megapass.net/~l5027309/eventlistener.html 소스를 보자. GEvent.addListener(map, "moveend", function() { var center = map.getCenter(); document.getElementById("message").innerHTML = center.toString();}); 따로 떼어네어서 살펴보자. 구글 API Reference 에 보면, GEvent 는 namespace 로 지정되며, 이벤트헨들러를 등록할수있다. custom event와.. 더보기