CreateFile() 함수를 이용하여 파일 생성후 바로 삭제하기 DarkKaiser, 2007년 7월 17일2023년 9월 5일 아래와 같이 파일을 생성시에 FILE_FLAG_DELETE_ON_CLOSE 속성을 주게 되는경우 파일 핸들이 닫히게 되면 해당 파일은 시스템에서 삭제가 된다. 또한 이미 존재하는 파일인 경우에는 FILE_SHARE_DELETE 공유 모드로 오픈하여야 한다. hFile = CreateFile("d:\\MYFILE.TXT", /* create MYFILE.TXT */ GENERIC_WRITE, /* open for writing */ 0, /* do not share */ NULL, /* no security Continue Reading
성공적인 프로젝트를 위한 다국어 리소스 준비-2 DarkKaiser, 2007년 7월 17일2023년 9월 6일 출처 : 데브피아 석재헌님의 글http://www.devpia.com/Forum/BoardView.aspx?no=7282&ref=7282&page=2&forumname=vc_lec&stype= 1. 리소스 라이브러리 앞서의 글에서 이야기한 다국어 리소스 대응 방식으로는, 다국어 리소스가 많아지면 관리하기도 어려워지고, 컴파일되어 나온 출력물이 커지는 단점이 있습니다. 이런 경우 각각의 언어에 대응되는 리소스들을 따로 혹은 몇 개를 묶어서 라이브러리화 하면, 유지보수 하기가 한 결 쉬어 집니다. 때때로 코드페이지의 한계로 같이 Continue Reading
성공적인 프로젝트를 위한 다국어 리소스 준비-1 DarkKaiser, 2007년 7월 17일2023년 9월 6일 출처 : 데브피아 석재헌님의 글http://www.devpia.com/Forum/BoardView.aspx?no=7281&ref=7281&page=2&forumname=vc_lec&stype= 1. 다국어 리소스 국내뿐만 아니라 해외에서도 널리 쓰이는 소프트웨어가 되기 위해서는 주체가 누구든지 로컬라이징(Localizing-이하 ‘지역화’)을 해 주든지 과정이 필요합니다. 이 때 개발자가 만든 프로그램이 이러한 지역화에 준비되어 있지 않으면, 개발자 뿐만 아니라 많은 사람들이 피곤하게 됩니다. (특히, 개발자만 죽어나는 경향이 있습니다.) 그러나, 다국어 리소스에 Continue Reading
웹페이지의 MFC 컨트롤을 패키지로 만드는 방법 DarkKaiser, 2007년 7월 17일2023년 9월 6일 Activex를 CAB 파일로 만들때 필요한 inf파일 작성법 http://support.microsoft.com/default.aspx?scid=kb%3Bko%3BKR167158 Continue Reading
오피스 파일 구별하기 DarkKaiser, 2007년 7월 17일2023년 9월 4일 /* Word Document (*.doc) : {00020906-0000-0000-C000-000000000046} */ static const GUID CLSID_WORD = { 0x00020906, 0x0, 0x0, { 0xC0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x46 }}; /* Excel Worksheet (*.xls) : {00020820-0000-0000-C000-000000000046} */ static const GUID CLSID_EXCEL = { 0x00020820, 0x0, 0x0, { 0xC0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, Continue Reading
Web으로부터 ActiveX 컨트롤을 다운받아서 실행하는 VC 예제 DarkKaiser, 2007년 7월 17일2023년 9월 6일 VC에서도 Internet Explorer처럼 웹에서 ActiveX를 다운로드 받아서 실행(ocx, cab)시키는 방법이 있더군요. 기본적으로 IBindStatusCallback을 사용하여 다운로드를 진행하고 CoGetClassObjectFromURL()함수를 이용하여 ClassFactory를 얻어오게 되어있습니다. 다운로드가 완료되면 CWnd::CreateControl()을 이용하여 CWnd에 Attatch되는군요. urlobj.zip Continue Reading
URL을 파싱하자 DarkKaiser, 2007년 7월 17일2023년 9월 6일 1. 요약 AfxParseURL()을 이용하여 URL을 파싱할 수 있다. 2. 본문 AfxParseURL()은 URL을 파싱하기위한 MFC 함수입니다. 사용법은 AfxParseURL의 인자로 URL의 문자열을 입력하면 서버와 프로토콜과 포트를 파싱해서 넘겨줍니다. BOOL AFXAPI AfxParseURL( LPCTSTR pstrURL, DWORD& dwServiceType, CString& strServer, CString& strObject, INTERNET_PORT& nPort ); 여기까지만 하면 너무 허전하죠… 그래서 MFC를 쓰지않는 프로그램에서는 이런 기능을 Continue Reading
VC++6 VC.NET용 STL 에러 메시지 해독기의 빠른 설치 가이드 DarkKaiser, 2007년 7월 17일2023년 9월 6일 VC++6_VC.NET용_STL_에러_메시지_해독기의_빠른_설치가이드.zip Continue Reading
new가 실패했을때의 처리 DarkKaiser, 2007년 7월 17일2023년 9월 6일 데브피아 김용현님의 글 보통 프로그래밍을 할때 new에 대한 실패 처리는 해주지 않고 코딩을 합니다. 문자열이나 new 를 쓰지 않는 어플리케이션은 없다고 해도 틀린말은 아니고 다음과 같은 코드는 일반적으로 많이 쓰이는 코드 입니다.char* szName = new char[128]; new 에 대한 에러 처리는 하지 않습니다. 만일, 아주 큰 new 를 많이 해야 Continue Reading
STL 제네릭 알고리즘 정리 DarkKaiser, 2007년 7월 17일2023년 9월 6일 accumulate() 기본적으로, 컨테이너의 요소들을 세 번째 인수로 지정한 초기값에 모두 더합니다. 기본 덧셈을 오버라이딩하기 위해 이항 연산을 넘길 수 있습니다. #include <numericiresult = accumulate(ia, ia + 9, 0); iresult = accumulate(ilist.begin(), ilist.end(), 0, plus<int()); adjacent_difference() 기본적으로 주어진 열 내에서 인접하는 각 요소의 차이를 값으로 하는 새로운 열을 생성합니다. Continue Reading