2020/06/18
[MFC] 관리자 권한을 필요로 하는 프로그램 만들기
2016/11/04
Free Delphi/C++ Builder 10.1 Berlin Starter Edition
다운로드 경로
Delphi: https://www.embarcadero.com/products/delphi/starter/promotional-download
C++ Builder: https://www.embarcadero.com/products/cbuilder/starter/promotional-download
경로는 다르나 동일 파일인 것 같다. 아직 설치는 하지 않았지만 인터넷이 연결된 상태에서 설치가 가능할 파일로 설치시 패키지를 설정하는 것 같다.
다운로드를 위해서는 Embarcadero Developer Network (EDN)에 가입이 되어 있어야 한다. 가입이 되어 있지 않을 경우 간단한 가입 절차를 거쳐 다운로드 할 수 있으며 가입된 메일 계정으로 설치에 필요한 키가 전달이 된다.
Embacadero 사가 Starter 버전을 무료로 배포하는 이유는 아무래도 경쟁사 제품을 의식해서인듯 하다. 개발툴의 저변 확대를 노리고 있을테지만 그리 큰 효과를 볼 수는 없을 것 같다.
경쟁제품이라 할 수 있는 MS사의 Visual Studio는 아주 오래전부터 Express 버전을 제공해 왔고 얼마전부터는 거의 모든 기능을 포함하고 있는 Community 버전을 개인에 한하여 무료로 제공하고 있었다.
Embacadero 사의 Starter 버전은 얼마되지 않았으며 그 동안 유료(Delphi - $320.2, C++ Builder - $238.7)로 배포되고 있었다. 게다가 이번에 무료로 공개하는 Embacadero 사의 Starter 버전의 기능 제한이 매우 많아 보인다. MS의 Visual Studio Community 버전의 경우 일반 개발에 필요한 대부분의 기능을 사용할 수 있지만 Embacadero 사의 Starter 버전은 대부분의 기능을 사용하지 못 한다. 할 수 있는 것이라고는 윈도우에서 32비트 Application 개발에만 사용할 수있다.
아래 제품 비교표를 보면 쉽게 알 수 있다.
Visual Studio: https://www.visualstudio.com/vs/compare/
Delphi: https://www.embarcadero.com/products/delphi/product-editions
C++ Builder: https://www.embarcadero.com/products/cbuilder/product-editions
Community 버전을 생각하고 다운을 받았는데 확인해보니 그렇지 않아 설치를 망설이고 있다.
아마 하지 않을 것 같다.
2015/03/25
Visual Studio 2012에서 Feature Pack의 변화
아래 내용은 변경사항 중 MFC와 ATL 라이브러리 관련 변경 사항이다.
MFC및 ATL 라이브러리 변경사항 보기
Removed Fusion support (afxcomctl32.h); therefore, all methods that are defined in afxcomctl32.h have been removed. Header files afxcomctl32.h and afxcomctl32.inl have been deleted.
Changed the name of CDockablePane::RemoveFromDefaultPaneDividier to CDockablePane::RemoveFromDefaultPaneDivider.
Changed the signature of CFileDialog::SetDefExt to use LPCTSTR; therefore, Unicode builds are affected.
Removed obsolete ATL tracing categories.
Changed the signature of CBasePane::MoveWindow to take a const CRect.
Changed the signature of CMFCEditBrowseCtrl::EnableBrowseButton.
Removed m_fntTabs and m_fntTabsBold from CMFCBaseTabCtrl.
Added a parameter to the CMFCRibbonStatusBarPane constructors. (It is a default parameter, and so it is not source-breaking.)
Added a parameter to the CMFCRibbonCommandsListBox constructor. (It is a default parameter, and so it is not source-breaking.)
Removed the AFXTrackMouse API (and related timer proc). Use the Win32 TrackMouseEvent API instead.
Added a parameter to the CFolderPickerDialog constructor. (It is a default parameter, and so it is not source-breaking.)
CFileStatus structure size changed: The m_attribute member changed from BYTE to DWORD (to match the value that's returned from GetFileAttributes).
CRichEditCtrl and CRichEditView use MSFTEDIT_CLASS (RichEdit 4.1 control) instead of RICHEDIT_CLASS (RichEdit 3.0 control) in Unicode builds.
Removed AFX_GLOBAL_DATA::IsWindowsThemingDrawParentBackground because it is always TRUE on Windows Vista, Windows 7, and Windows 8.
Removed AFX_GLOBAL_DATA::IsWindowsLayerSupportAvailable because it is always TRUE on Windows Vista, Windows 7, and Windows 8.
Removed AFX_GLOBAL_DATA::DwmExtendFrameIntoClientArea. Call Windows API directly on Windows Vista, Windows 7, and Windows 8.
Removed AFX_GLOBAL_DATA::DwmDefWindowProc. Call Windows API directly on Windows Vista, Windows 7, and Windows 8.
Renamed AFX_GLOBAL_DATA::DwmIsCompositionEnabled to IsDwmCompositionEnabled to eliminate name collision.
Changed identifiers for a number of MFC internal timers and moved the definitions to afxres.h (AFX_TIMER_ID_*).
Changed the signature of OnExitSizeMove method to agree with the ON_WM_EXITSIZEMOVE macro:
CFrameWndEx
CMDIFrameWndEx
CPaneFrameWnd
Changed the name and signature of OnDWMCompositionChanged to agree with the ON_WM_DWMCOMPOSITIONCHANGED macro:
CFrameWndEx
CMDIFrameWndEx
CPaneFrameWnd
Changed the signature of OnMouseLeave method to agree with the ON_WM_MOUSELEAVE macro:
CMFCCaptionBar
CMFCColorBar
CMFCHeaderCtrl
CMFCProperySheetListBox
CMFCRibbonBar
CMFCRibbonPanelMenuBar
CMFCRibbonRichEditCtrl
CMFCSpinButtonCtrl
CMFCToolBar ReplaceThisText
CMFCToolBarComboBoxEdit
CMFCToolBarEditCtrl
CMFCAutoHideBar
Changed the signature of OnPowerBroadcast to agree with the ON_WM_POWERBROADCAST macro:
CFrameWndEx
CMDIFrameWndEx
Changed the signature of OnStyleChanged to agree with the ON_WM_STYLECHANGED macro:
CMFCListCtrl
CMFCStatusBar
Renamed the internal method FontFamalyProcFonts to FontFamilyProcFonts.
Removed numerous global static CString objects to eliminate memory leaks in some situations (replaced with #defines), and the following class member variables:
CKeyBoardManager::m_strDelimiter
CMFCPropertyGridProperty::m_strFormatChar
CMFCPropertyGridProperty::m_strFormatShort
CMFCPropertyGridProperty::m_strFormatLong
CMFCPropertyGridProperty::m_strFormatUShort
CMFCPropertyGridProperty::m_strFormatULong
CMFCPropertyGridProperty::m_strFormatFloat
CMFCPropertyGridProperty::m_strFormatDouble
CMFCToolBarImages::m_strPngResType
CMFCPropertyGridProperty::m_strFormat
Changed the signature of CKeyboardManager::ShowAllAccelerators and removed the accelerator delimiter parameter.
Added CPropertyPage::GetParentSheet, and in the CPropertyPage class, call it instead of GetParent to get the correct parent sheet window, which may be the parent or a grandparent window to CPropertyPage. You might have to change your code to call GetParentSheet instead of GetParent.
Fixed unbalanced #pragma warning(push) in ATLBASE.H, which caused warnings to be disabled incorrectly. Those warnings are now enabled correctly after ATLBASE.H has been parsed.
Moved D2D-related methods from AFX_GLOBAL_DATA to _AFX_D2D_STATE:
GetDirectD2dFactory
GetWriteFactory
GetWICFactory
InitD2D
ReleaseD2DRefs
IsD2DInitialized
D2D1MakeRotateMatrix
Instead of calling, for example, afxGlobalData.IsD2DInitialized, call AfxGetD2DState->IsD2DInitialized.
Removed obsolete ATL*.CPP files from the \atlmfc\include\ folder.
Moved afxGlobalData initialization to on-demand instead of at CRT initialization time, to satisfy DLLMain requirements.
Added the RemoveButtonByIndex method to the CMFCOutlookBarPane class.
Corrected CMFCCmdUsageCount::IsFreqeuntlyUsedCmd to IsFrequentlyUsedCmd.
Corrected several instances of RestoreOriginalstate to RestoreOriginalState (CMFCToolBar, CMFCMenuBar, CMFCOutlookBarPane).
Removed unused methods from CDockablePane: SetCaptionStyle, IsDrawCaption, IsHideDisabledButtons, GetRecentSiblingPaneInfo, andCanAdjustLayout.
Removed CDockablePane static member variables m_bCaptionText and m_bHideDisabledButtons.
Added an override DeleteString method to CMFCFontComboBox.
Removed unused methods from CPane: GetMinLength and IsLastPaneOnLastRow.
Renamed CPane::GetDockSiteRow(CDockingPanesRow *) to CPane::SetDockSiteRow.
자세한 정보를 아래 링크를 확인 해보면 된다.
https://msdn.microsoft.com/en-us/library/vstudio/bb531344(v=vs.110)
Original Post : http://neodreamer-dev.tistory.com/736
2015/01/28
Windows 8.1에서 Visual Studio를 항상 관리자 권한으로 실행하기
설정을 하는 방법은 아래와 같다.
우선 시작메뉴나 작업표시줄에 고정된 메뉴의 속성(Properties) 대화상자를 연다.
속성 대화상자의 Shortcut 페이지의 Advanced... 버튼을 선택하여 고급 설정 대화상자를 호출 한다.
고급 속성 중 Run as administrator를 선택하면 된다.
Original Post : http://neodreamer-dev.tistory.com/734
2014/11/07
다른 편집기에서 .rc 파일을 열지 않았음에도 "Opened in another editor" 메시지가 나올 때.
프로젝트의 .rc 파일을 다른 편집기에서 열지 않았음에도 Resource View에서 보고자 하는데 "Opened in another editor" 메시지가 출력되면서 열리지 않을 때.
Solution Explorer 에서 해당 리소스 파일(.rc)을 찾아 오른쪽 버튼을 눌러 View Code 메뉴로 열었다가 닫고 리소스 헤더(resource.h) 파일도 같은 방법으로 열었다 닫는다.
Original Post : http://neodreamer-dev.tistory.com/730
2013/07/10
Add/Remove operation is impossible, the code element ‘xxxx’ is read only
이 때, 프로젝트를 닫고 프로젝트의 .ncb 파일과 .sou 파일을 지우고 프로젝트를 다시 열어 빌드하면 된다.&
Original Post : http://neodreamer-dev.tistory.com/715
2013/04/07
OpenCV 디버깅을 위한 Visual Studio Plugins
이 Plugin 은 메모리 상태의 OpenCV 변수(cv::Mat, CvMat, IplImage)의 내용을 확인할 수 있다.
아쉬움 점 이라면 이 Plugin 이 지원하는 Visual Studio 의 버전이 Visual Studio 2012 Professional 에 Update 1 이상을 요구한다.
Image Watch: viewing in-memory images in the Visual Studio debugge
Original Post : http://neodreamer-dev.tistory.com/697
2011/03/25
Visual C++ 에서 버전을 구분하기 위한 미리정의된 매크로
Visual C++ 에서 컴파일러와 MFC 그리고 ATL 의 버전을 구분하기 위한 매크로가 있다. 컴파일러에 따라 다른 코드를 사용할 경우 이 매크로 값을 이용하면 된다.
_MSC_VER (컴파일러)
_MFC_VER
_ATL_VER
2010/10/21
AnkhSVN에서 .DLL 과 .LIB 파일을 SVN 에 등록하기
2010/10/16 - [Dev Story] - AnkhSVN 으로 Subversion에서 프로젝트 받아오기
AnkhSVN 으로 프로젝트를 SVN 에 올릴 경우 프로젝트에 포함된 .DLL 파일과 .LIB 파일이 SVN Repository 에 등록이 되지 않는데 이를 등록하는 방법을 지금까지 찾을 수 없었는데 의외로 간단한 방법을 찾았다.
AnkhSVN 에 포함되어 있는 Working Copy Explorer 을 이용하면 해결 할 수 있다. Working Copy Explorer 는 PC에서 작업중인 프로젝트를 탐색할 수 있으면 SVN 관련 작업을 지원하는 View 이다. Visual Studio 의 View 메뉴에서 Working Copy Explorer 를 호출 할 수 있다.
Repository에 등록되지 않은 파일들을 등록하길 원할 경우 해당 파일에서 오른쪽 버튼의 Subversion 메뉴에서 할 수 있다.<
Original Post : http://neodreamer-dev.tistory.com/472
2010/10/16
AnkhSVN 으로 Subversion에서 프로젝트 받아오기
AnkhSVN 을 이용하여 Subversion 에 등록한 프로젝트를 다른 곳에서 다운 받아 보았다.
우선 File 메뉴에서 Subversion 의 "Open from Subversion..." 을 선택한다.
Subversion URL 을 입력하면 프로젝트 폴더가 나오고 프로젝트 폴더에 들어가면 Solution(*.sln) 파일이 있는데 이를 Open 한다.
프로젝트를 생성할 경로를 입력하고 "OK" 를 누른다.
그러면 Subversion 서버로 부터 프로젝트를 다운 받는다.
다운받은 프로젝트가 이상이 없는지 컴파일을 해 보았다.
프로젝트를 등록할 때 .lib 와 .dll 파일들이 자동으로 등록이 되지 않는 것 같다. 별도의 옵션이 있는지 확인해 보고 없으면 프로젝트 등록은 TortoiseSVN 같은 별도의 툴을 사용해야 할 것 같다.<
Original Post : http://neodreamer-dev.tistory.com/468
Visual Studio 를 위한 버전 관리 툴 AnkhSVN 사용하기
새로운 프로젝트 생성 대화상자에도 Add Subversion 메뉴가 생성이 되어 프로젝트를 생성할 때 바로 Subversion 에 등록을 할 수 있다.
기존 프로젝트를 Subversion 에 등록을 하려면 Solution Explorer 에서 해당 프로젝트에서 마우스 오른쪽 버튼을 누르면 Subversion 관련 메뉴가 나오는데 이 중에서 Add Solution to Subversion 을 실행하면 된다.
새로운 프로젝트를 Subversion 에 등록하는 것과 기존 프로젝트를 Subversion에 등록하는 것으 크게 차이가 없다. 여기에서는 기존 프로젝트를 Subversion 에 등록을 해 보겠다.
기존 프로젝트른 Embedded Firebird 를 테스트해 보기위한 간단한 프로젝트이고 Subversion 은 Google에서 제공하는 Google code project hosting 을 이용하였다.
이세 Solution Explorer 에서 소스파일 아이콘 좌측에 등록이 되었다는 (+)아이콘이 표시되는 걸 볼 수 있다. Commit 을 해야 완전하게 등록이 되는 것으로 프로젝트의 마우스 우측 메뉴에서 Commit Project Changes 를 선택한다.
2010/02/09
Visual Studio 2010 RC Released
RC 부터는 일반인에게 공개가 되지 않는가 보다 현재는 MSDN Subscribers 들에게만 공개가 되었다.
Visual Studio 2010 and .NET Framework 4 Release Candidate
Visual Studio 2010 공식 팀 블로그 - Visual Studio 2010 RC 공개
RC 이전 버전을 사용하고 있는 경우에는 다음 글을 참고하여 이전 버전을 깨끗하게 삭제하고 설치 해야 한다.
Visual Studio 2010 Beta 완전하게 삭제하기
Original Post : http://neodreamer-dev.tistory.com/368
2008/10/14
Visual Studio 를 위한 무료 SVN plugin - AnkhSVN
Visual Studio IDE에서 SubVersion 을 사용할 수 있게 해주는 Open source plugin 이다.
프로젝트가 오픈 소스로 진행이 되고 Dialy Build 도 지원하여 매일매일 패치되는 버전을 받을 수도 있다.
Visual Studio의 솔루션 탐색기에 포함되어 파일 아이콘에 변경된 내용이 반영되어 쉽게 버전 관리를 할 수 있다.
- AnkhSVN Homepage
- AnkhSVN 2.0 Roadmap
- AnkhSVN 2.0 Screenshots
- AnkhSVN 2.0 Online Documentation
- AnkhSVN 2.0 Download
Original Post : http://neodreamer-dev.tistory.com/186