전체 글 230

dsw, sin 콘솔 컴파일

Visual Studio 를 사용하다 보면 왜 꼭 프로젝트 파일을 Visual Studio 를 열어서 컴파일 해야 하지? 라는 생각을 가지고 있었다. 그러다 회사 프로젝트의 빌드를 자동화 하기 위해 작업을 하던중 5~6개의 프로젝트에 ActiveX 인증과정에 인스톨 패키지 만드는거 하며.....ㅠㅠ 작업이 너무 많아 알아 보던중 dsw 또는 sin 파일을 매개변수로 하여 컴파일을 할 수 있다는걸 알게 되었다. Visual Studio 6.0 의 경우는 다음과 같이 콘솔창에서 커맨드를 입력 하면 된다. msdev.com Project.dsw /MAKE "Project - Win32 Release" /rebuild 위 커맨드중 "Project - Win32 Release" 이 부분은 프로젝트의 Config ..

강좌 2011.01.13

컨트롤을 상속 클래스, NM_CLICK 가 부모윈도우에 통지가 안될때..

MFC 프로그래밍을 하다 보면 컨트롤을 상속받아 새롭게 재정의 하는 경우가 많다. 예를 들어 CTreeCtrl 을 상속 받는 CTestTreeCtrl 을 만든다고 한다면 class CTestTreeCtrl : public CTreeCtrl { } 이런 구조가 만들어진다. 문제는 NM_CLICK, TVN_ENDLABELEDIT 이런 통지 메시지들을 재정의 할때 원하지 않는 결과가 나오는 경우가 있다. 즉, 해당 클래스에서만 NM_CLICK 이 발생을 하고 해당 컨트롤의 부모윈도우에게는 NM_CLICK 이 발생하지 않는 현상이 나타나는것이다. CTestTreeCtrl Class 에 NM_CLICK 를 재정의 하는 메서드를 만든다면 다음과 같이 될것이다. protected: //{{AFX_MSG(CTestTr..

Programming/MFC 2010.12.03

ini 에서 섹션(Section) 정보 얻기 - GetPrivateProfileSectionNames

http://whoim.tistory.com/entry/INI-섹션정보-얻기-GetPrivateProfileSectionNames 처음에는 이분 블로그에서 해당 소스를 보고 사용하였었다.. 며칠후에 해당 소스를 보다가.. 문자열이 \0 로 구분되는것에 착안 좀 더 최적화를 해보았다. 기존 코드 char szBuf[1024] = {0x00,}; char szSect[512] = {0x00,}; DWORDnCnt = ::GetPrivateProfileSectionNames(szBuf, 1024, strPath); int nPos = 0; BOOL bMakedSect = FALSE; // 하나의 섹션을 구성완료하면 TRUE하여 pos를 0으로 초기화 for(int i=0; i < (int)nCnt; i++, ..

Programming/MFC 2010.08.13

CListCtrl 파일로 저장 - CListCtrl Save, Load

CListCtrl 을 사용중 안에 내용을 저장 하기 위해 후딱 만들어 봤다... 아직 충분한 테스트가 안되어 있기에 버그가 있을수 있으니 사용에 주의 바람.. ListCtrlEx.h class CListCtrlEx : public CListCtrl { // Construction public: CListCtrlEx(); // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CListCtrlEx) //}}AFX_VIRTUAL // Implementation public: typedef enum { TEXT_MODE, BINARY_MODE ..

Programming/MFC 2010.08.12

VC Express. Dll 또는 Lib 프로젝트에서 버전을 표시 하자.

프로젝트에 동일한 이름의 rc 파일을 생성 한다. 소스 파일 (우클릭) -> 추가 -> 새 항목 프로젝트명.rc 그 후 rc 파일을 코드 편집으로 열어서 다음의 내용을 추가 한다. 1 VERSIONINFO FILEVERSION 1, 0, 0, 0 PRODUCTVERSION 1, 0, 0, 0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "파일의 설명을 쓰세요" VALUE "FileVersio..

Programming/C/C++ 2009.08.11