Tech & IT/프로그래밍 110

Win32 문자열

출처 : http://blog.naver.com/seunghyni/110014783397 “ Win32 문자열 ” ColdFloor | 2006/09/30 20:09 | 개발/Etc C++ 문법을 배우고 Win32 프로그래밍을 시작 할 때, 가장 어려운 것중 하나는 엄청난 수의 Win32 DataType들과 생소한 Macro들이었다. 생전 처음 보는 그 녀석들을 이해하려면 상당한 범위를 돌아다녀야 했고, 이해하기 보다는 대충 이렇게 쓰면 오류없이 컴파일 되더라 정도로 사용하는게 현실이었다. 그 중에서도 문자열부분은 꽤나 두통을 유발하는 것들인데 유니코드고 멀티바이트고 신경안쓰고 대충 만들고 싶어도 어디에서건 꼭 발목을 잡히게 된다. 그렇다고 아주 해결이 안되는것도 아닌데, 그 때 그때 급하게 땜질식으로 ..

HOWTO: VC++에서 기계어 코드 Visual Basic 구성 요소를 디버깅하는 방법

출처 : http://support.microsoft.com/kb/166275/ko 기술 자료 ID: 166275 - 마지막 검토: 2003년 8월 19일 화요일 - 수정: 1.1 HOWTO: VC++에서 기계어 코드 Visual Basic 구성 요소를 디버깅하는 방법 이 문서가 적용되는 제품 보기. 이 문서는 이전에 다음 ID로 출판되었음: KR166275 모두 확대 | 모두 축소 요약 코드를 .exe, .dll 또는 .ocx로 컴파일하기 전에 디자인 타임에서 Visual Basic 5.0 디버거를 사용하여 디버깅할 수 있습니다. Visual Basic으로 만든 COM 구성 요소를 디버깅할 때 동일한 Visual Basic 5.0 인스턴스에서 복수의 프로젝트를 실행하거나, Visual Basic 5.0..

C++ template에서 export keyword(VS2008에서는 아직 미지원)

출처 : http://jof4002.net/?CppKeywords/export 오늘은 export라는 키워드를 간단하게 소개하겠습니다. 질문답변란에 올라온 질문에 대해서 찾다 보니 알게 된 내용입니다. Template을 사용할 때는 함수의 구현 부분이 그 함수 앞에 있어야 합니다. 따라서 보통은 헤더 파일에 들어가게 되지요. [The C++ Programming Language] 책을 보니 export라는 키워드가 있는데 Visual C++에서는 지원을 하지 않습니다. export를 사용하면 컴파일러가 컴파일을 할 때 그 함수가 정의된 곳을 찾아서 알아서 잘 컴파일해야 한다고 합니다. (이거... 구현하기 귀찮겠네요. -_-;) 다음과 같이 사용하면 된다고 하니 참고하세요. [out.h] template..

"MFC에 RichEdit 1.0 컨트롤 사용"에 대한 잘못된 설명서

출처 : http://support.microsoft.com/kb/316375/koDOC: "MFC에 RichEdit 1.0 컨트롤 사용"에 대한 잘못된 설명서 이 문서가 적용되는 제품 보기. 기술 자료 ID : 316375 마지막 검토 : 2002년 4월 30일 화요일 수정 : 1.0 이 문서는 이전에 다음 ID로 출판되었음: KR316375 요약 Microsoft Visual Studio .NET 도움말 설명서의 "MFC에 RichEdit 1.0 컨트롤 사용" 항목이 다음과 같이 잘못 설명되어 있습니다. RichEdit 컨트롤을 사용하려면 먼저 AfxInitRichEdit을 호출해야 합니다. Visual Studio .NET에서는 이 함수가 Visual C++ 6.0의 경우처럼 Riched32.dll..

간단 API Tip

* Client에서 InitInstance()에 AfxOleInit(); 호출한다. * CRichEditCtrl을 사용할 때 .NET에서는 AfxInitRichEdit() 호출한다 사용예 : http://box.co.kr/raymondjeon/index.php/1585 * API, MFC관련 엄청난 예제 http://www.winapi.co.kr/pds/exam/exam.htm * DialogBox 메시지 교환 UpdateData(FALSE); // 컨트롤에 멤버변수의 내용을 표시해준다 UpdateData(TRUE); // 컨트롤 내용을 다이얼로그 클래스의 멤버변수로 저장 * COM Server에서 MFC Dialog를 호출하려면 AFX_MANAGE_STATE(AfxGetStaticModuleState..

CPP Unit 관련 자료

Refactoring(리팩토링 - 마틴파울러) p113의 '4장 테스트 만들기'를 읽어볼것 나는 코드를 개발할 때 테스트도 같이 작성한다. 그러나 다른 사람들과 리팩토링을 할 때는 종종 자체테스트 코드가 없는 프로그램을 다루기도 한다. 따라서 리팩토링을 하기 전에 먼저 자체 테스트 코드를 만들어야 한다. 테스트에 대한 자바의 표준 관례는 main메소드를 테스트 하는 것이다. 이것은 모든 클래스가 클래스 자신을 테스트 하기 위한 main 메소드를 가지고 있어야 한다는 뜻이다. 합당한 관례이긴 하지만(큰 호응을 얻지는 못하고 있다.), 이상해질 수가 있다. 문제는 이 관례가 많은 테스트를 실행시키기 어렵게 한다는 것이다. 다른 접근 방법은 테스트가 쉬운 프레임워크내에서 별도의 테스트 클래스를 만드는 것이다...

Win32 환경에서의 타이머 종류

출처 : http://www.gpgstudy.com/gpgiki/시간%20다루기#header1 Ansi C의 time(), _ftime()Ansi 표준 C 라이브러리의 함수들로, time()은 최소 1초 단위의 값을 돌려준다. 메인 루프 제어용으로는 부적합하나 게임 저장 날짜/시간의 기록 등에는 유용할 것임. _ftime()은 밀리초(1000분의 1초) 단위의 값을 돌려준다. Win32 API의 timeGetTime() 함수흔히 멀티미디어 타이머라고 하는 것으로, 윈도우즈가 시작된 이후 흐른 시스템 시간을 돌려준다. 단위는 밀리초. 기본 정밀도는 Win9x의 경우 1 밀리초, NT 패밀리의 경우 5 밀리초 이상이라고 함. 이정도면 _ftime()과 함께 게임에서 써먹을 수 있을 만한 함수. 타이머의 해상..

[Scrap] C++ ReplaceAll 함수

출처링크 : http://ljh131.tistory.com/88 C++ STL의 string을 이용해서 구현한 replace all 함수입니다. 마지막 두줄의 assert를 보면 알 수 있듯이, 이 함수엔 문자열이 재귀적으로 치환되는 문제가 없습니다. #include #include #include using namespace std; string replaceAll(const string &str, const string &pattern, const string &replace) { string result = str; string::size_type pos = 0; string::size_type offset = 0; while((pos = result.find(pattern, offset)) != ..