본문 바로가기

C++0x Lambda 아래 링크의 글 중 Herb Sutter 의 Lambda 예제 및 설명에 관한 리플.. http://herbsutter.wordpress.com/2008/03/29/trip-report-februarymarch-2008-iso-c-standards-meeting/ []와 []안에 들어가는 내용에 대해서 명쾌하게 설명을.. Herb Sutter Re binders: Okay, I give! I’ll use a better example next time. (no name) asked: "How are local variables captured?" You have to specify whether it’s by copy or by reference. So this example is illegal beca.. 더보기
C++0x 지원 컴파일러 목록 http://wiki.apache.org/stdcxx/C++0xCompilerSupport 더보기
C++ Refactoring 기 작성되어 있던 C++ 컴포넌트에서 한개의 함수에 너무 많은 코드로 인해, 컴파일러 내부 오류를 경험하고 해당 코드에 대해서 리팩토링을 결심!! 관련된 작업은 Extract Method 이며 자동으로 해당 부분을 추출하여 Method를 만들어 주는 툴을 중심으로 알아 보았다. 이것 저것 알아보던 중 2개의 후보가 눈에 띠었다. 대상은 "Refactor! For Visual C++ 2005"와 "Visual Assist X" 에서 지원하는 Refactoring 에 관련된 기능이다. 결론부터 얘기하면 "Refactor! For Visual C++ 2005"의 기능이 쓸만 하였고 Visual Assist X 의 리팩토링 기능은 간단한 기능을 제외하고는 그다지 유용하지 못하였다. Visual Assist X .. 더보기
ATL Com Project VC++ 6 에서 VC++ 8 변환(업그레이드) VC++ 6 에서 ATL Com Project 만들어진 프로젝트를 VC++ 8 로 업그레이드를 할 경우 몇가지의 문제가 발견 되었다. 1. LINK : fatal error LNK1104: 'mtxguid.lib' 파일을 열 수 없습니다. 확인 해보니 더 이상 VC++ 8 버전에서는 'mtxguid.lib'가 존재 하지 않는다. 다른 lib 로 바이너리들이 통합 된것으로 보이며 링커 옵션에 추가 되어 있는 'mtxguid.lib' 를 지우면 된다. 추가적으로 main을 못찾는다는 링크 에러가 발생하면 "ATL에서 CRT 사용 최소화" 옵션을 사용 하지 않는다. 2. GetObjectContext 링크 에러 링크 옵션에 "comsvcs.lib" 를 추가 하면 된다. 3. def 파일의 심볼에 서수 지정 경.. 더보기
An Overview of the Coming C++ (C++0x) Standard C++ 0x에 대한 리뷰 동영상인가 보다. 시간있을때 하나씩 정리를 해볼까 하는데.. 움.. 더보기
생각의 정리.. 2년전부터 항상 머리속에서 고민하고 있는 주제가 있다. 어떻게 하면 나의 머리속의 있는 내용을 문서로 정리할까 이다. 첨부터 오프라인 다이어리는 생각도 안했고 (요 부분은 내가 다이어리를 깔끔이 정리하는 능력이 없기때문에 ;;) PDA나 핸드폰도 고민을 해보았으나 역시 입력장치의 불편함으로 인해 아니다 라는 결론에 도달했다. 물론 노트북도 대안이긴 하지만 회의시간에 항상 노트북을 들고 다니면서 타이핑을 하기에는 사람과의 커뮤니케이션이라는 부분에서 좀 아니다라는 생각이 들었다. 어찌 되었던 회의는 손으로 끄적거리면서 정리를 하고 그 내용을 파일로 정리를 하는것이 가장 낳겠다는 결론에 도달하고 그럼 어떤 어플리케이션으로 해야할지에 대해서 고민하기 시작하기 이른다. 1. 메일 클라이언트를 바꾸다 : 아웃룩 익.. 더보기
유니코드(UNICODE), C++ 유니코드 (네이버 백과사전) 국제표준으로 제정된 2바이트계의 만국 공통의 국제 문자부호 체계(UCS: Universal Code System)를 말한다. 애플컴퓨터·IBM·마이크로소프트 등이 컨소시엄으로 설립한 유니코드(Unicode)가 1990년에 첫 버전을 발표하였고, ISO/IEC JTC1에서 1995년 9월 국제표준으로 제정하였다. 공식 명칭은ISO/IEC 10646-1(Universal Multiple-Octet Coded Character Set)이다. 유니코드는 전세계 문자코드를 정의하기 위해서 만든 놈이다 그럼 이전에는 어떻게 표현 했는가? 이전에는 알파벳틱한 애들은 1바이트에서 7비트 내로 표현하고(Ascii) 그외에 확장적인 문자가 코드 127 위로 표시되고, 한글과 같이 더 많은 바이.. 더보기
SQL Server CLR - 레지스트리 읽기 SQL Server 2005 버전 부터 기존 Native 확장프로시저의 개념으로 .net 환경의 CLR 코드의 통합을 제공한다 기본 네이티브 확장프로시저는의 문제점은 위험한 코드로 인해 SQL Server 자체의 보안이나 실행에 영향을 줄수 있다는것인데 2005 부터 지원되는 CLR의 경우 SQL Server와 실행의 완벽한 분리로 리스크를 최소한으로 줄였다고 한다. 이번에 SQL Server 암호화 모듈을 위해 Native 확장프로시저및 CLR 코드로 만들어 비교해 봤는데 CLR 의 압승이었다 Native의 경우 crypto++ 이라는 라이브러리로 래핑을 하였고 CLR의 경우 System.Security.Cryptography 의 라이브러리를 사용해서 만들었다. 대강의 느낌은 CLR 쪽이 3배 이상 빠.. 더보기
회의를 좋아하는 매니저의 특징 http://bobbyryu.blogspot.com/2008/09/blog-post.html 판단 능력이 부족하고, 소심하며, 어떠한 리스크도 감수하지 않으려고 하며, 실제로 하는 일이 없기 때문에 실패하지도 않으며, 그 결과 끈질긴 생존력을 자랑합니다. 더보기
VARIANT 에서 객체 추출하기 IDispatch* GetDispatchPtr(VARIANT &var) { VARIANT *pvar = &var; IDispatch* pdisp = NULL; if (var.vt == (VT_BYREF | VT_VARIANT)) { // 1 pvar = var.pvarVal; } if (pvar->vt == (VT_BYREF | VT_DISPATCH)) { // 2 pdisp = *pvar->ppdispVal; } else if (pvar->vt == VT_DISPATCH) { // 3 pdisp = pvar->pdispVal; } return pdisp; } ex) ADODB::_RecordsetPtr sp(GetDispatchPtr(var)); VB에서 Host 객체를 Early Binding 으로 .. 더보기