2008/01 6

regsvr32 를 하다가 죽을 때

ocx 가 메인이고, dll 들을 곁가지로 같이 갖고 있는 솔루션이 있다. 어느 순간 갑자기 빌드 마지막에 Debug Assert 가 일어나 버렸다. 황당했다. 프로그램 실행시도 아니고 빌드후에 regsvr32 를 하는 도중에 저런게 뜨다니... 이런 상황은 이전에도 많이 경험했다. 주로, dll 내의 DllRegisterServer 쪽의 코드가 잘못됐을 때, 혹은 ocx 의 InitInstance() 함수가 잘못 됐을 때 일어난다. 그런데, 오늘 겪은 상황은 모두 해당 사항 없음이다. 결국 문제를 발견했는데 원인은 잘 모르겠다. 문제는 dll 의 헤더에 멤버변수 하나를 추가한 것 뿐이다. 이상하다. 멤버변수를 추가해서 다시 컴파일 하고 lib 도 링크되고, dll 도 복사되고 하는데 왜 이런일이... ..

Windows Programming 2008.01.31

[펌] Visual Studio 2005 서비스팩1 통합 하기

Visual Studio 2005 서비스팩1 통합 하기. | ETC 2008-01-30 오전 11:23:27 김효종 (introc) 번호: 8005 / 평점: (-) / 읽음:107 흠... Visual Studio 2005 설치에도 많은 시간이 걸리는데, 거기다가 서비스팩 1을 적용하려면 정말 인내의 시간을 가져야 하더군요. 해서 XP나 다른 제품처럼 서비스팩을 원본에 통합하는 방법이 없을까 찾아보다가 아래 내용을 찾게 되었습니다. 이용하실 때 도움이 되셨으면 좋겠습니다. 원문 : http://blogs.msdn.com/heaths/archive/2006/12/16/slipstreaming-visual-studio-2005-service-pack-1.aspx Slipstreaming Visual Stu..

Windows Programming 2008.01.31

유니코드&UTF-8 텍스트를 파일로 저장하기

//UNICODE 로 저장하기 TCHAR szPath[] = _T("1234567890"); int nLen = _tcslen(szPath); CFile file(_T("D:\\Down\\test.xml"), CFile::modeCreate|CFile::modeWrite); TCHAR szTmp[2]; WORD wd = 0xfeff; memcpy(szTmp, &wd, 2); file.Write(szTmp, 2); file.Write(szPath, nLen*sizeof(TCHAR)); file.Close(); 여기서 핵심은 FEFF 이다. 유니코드의 식별자란 것인데, 파일의 처음부분에 넣어주면 유니코드라고 선언하는 셈이 된다. (원래 규격은 FFFE 일것이지만, IBM PC 는 리틀엔디언 방식이므로 바이트..

Windows Programming 2008.01.25