헬마입니다.

최근에 파이썬에 매우 관심을 가지고 보기 시작했습니다. 문법도 꽤 간결한 편이고 나름 관심가는 언어더군요.

도움말이 CHM으로 되어있고 이거 빌드 문서를 보니 뭔가 이거저거 복잡해서 어떻게 CHM을 만드는건지 잘 모르겠네요. ㅠㅠ

습성상 도움말을 탐독해서 언어 공부하는게 습관이 되어버려서요.. 파이썬 도움말 CHM 빌드 방법 아시는분 알려주세요 ㅠㅠ

댓글을 달아 주세요

  1. 하나로 2010.05.05 15:39 신고 Address Modify/Delete Reply

    chmEditor.exe 요넘 찾아보세요


헬마입니다.

토탈 커맨더가 7.55 베타 1 이 얼마전에 나왔습니다.

개인적인 기준으로 가장 마음에 드는 기능은 스페이스바 등으로 디렉토리 크기를 구할 때 백그라운드 스레드로 돌아서 스페이스바 눌러놓고 멍하니 기다리는 일이 없어졌다는 사실입니다.  ㅠㅠ 하위 폴더에 파일이 좀 많거나 하면 폴더 크기 구하는데만 몇분씩 걸렸는데ㅐ 매우 부드럽게 돌아가네요.

그외에 몇몇 플러그인들이 업데이트되었습니다. mplayer 쪽에서 mpui 도 사용하면 에어로를 끄는 문제가 있어서 smplayer 라는 mplayer 프론트엔트 프로그램을 같이 넣었습니다. 이녀석은 에어로를 끄지 않고 잘 재생이 되네요. F4Menu 를 설치하시면 F4 를 눌러서 F4Menu 를 띄웠을 때 Smplayer for Mplayer 라는 항목이 나타나고 이 항목을 선택하면 재생됩니다. MPUI는 다음 리팩 버전에서 제거할 예정입니다. ^^


'리팩 > TotalCMD' 카테고리의 다른 글

Total Commander - H.M - Build No. 77  (1) 2010.04.28
Total Commander - H.M - Build No. 76  (6) 2010.04.12
Total Commander - H.M - Build No. 75  (11) 2010.03.29
TOTAL COMMANDER - H.M - Build No. 73  (7) 2009.09.30
Total Commander - H.M - Build No. 72  (5) 2009.09.10
Total Commander - H.M - Build 70  (5) 2009.08.11

댓글을 달아 주세요

  1. 헬마짱 2010.03.29 15:41 신고 Address Modify/Delete Reply

    헬마님 감사 ^^

  2. BlogIcon 엉망진창 2010.03.29 16:51 신고 Address Modify/Delete Reply

    언제나 감사합니다.. 꾸벅....

  3. ^^ 2010.03.30 01:32 신고 Address Modify/Delete Reply

    감사합니다.
    스페이스바 크기 구하는게 빨라졌다니 기대되네요.. ^^

  4. 무설치맨 2010.03.30 20:32 신고 Address Modify/Delete Reply

    감사합니다. 그런데 smplayer로 영상을 볼려구 하는데 전혀 반응이 없습니다. 따로 옵션에서 설정해줘야 하나요?

    • 헬마 2010.03.31 13:26 신고 Address Modify/Delete

      안녕하세요.

      F4 메뉴에서 나타나는 SMPlayer 로 재생안대나요?

      토탈 커맨더 폴더에서 직접 SMPlayer 찾아서 실행하셨을때는 이상없이 재생이 되나요?

  5. 무설치맨 2010.04.01 04:55 신고 Address Modify/Delete Reply

    mplayer.exe가 문제가 있는것 같아요..한번 확인해주시면 고맙겠습니다. mplayer.exe만 교체해보면 플레이가 잘 되는데 다시 원본 mplayer.exe를 사용하면 반응이 없네요..확실히 mplayer.exe파일이 문제가 있는 것 같습니다.

    • 헬마 2010.04.01 10:43 신고 Address Modify/Delete

      혹시 컴퓨터 사양을 알 수 있을까요?
      mplayer 는 가끔 특정 시퓨에 맞는 최적화 버전이 제공되기 때문에 그게 들어가 있을수도 있습니다. ^^

  6. 무설치맨 2010.04.02 20:30 신고 Address Modify/Delete Reply

    아~그렇군요. 썬더버드1.2쓰고 있습니다.(매우 구형컴이죠? ^^) 일일이 답변 주시고 감사합니다. 앞으로도 버전업되면 잘 부탁드릴게요..감사합니다.

  7. BlogIcon koc/SALM 2010.04.07 05:50 신고 Address Modify/Delete Reply

    mplayer 를 소개하는 사이트나 포터블 사이트가 대부분 smplayer 로 교체되거나 그걸 추천하고 있는 걸로 보아서는 윈도용은 mplayer 업데이트가 중단되거나 사용히 제한될 것 같습니다.
    어차피 같은 소스로 만드는 거라서 윈도용만 이름이 달라지고 ui가 다르다고 해서 문제가 될 것 같지는 않지만요. (근데 제가 보기에는 그 ui가 그 ui처럼 보이네요. 제 눈이 이상한 걸까요?)

    • 헬마 2010.04.08 09:42 신고 Address Modify/Delete

      mplayer 와 SMplayer 의 용도를 혼동하신 듯 합니다.
      mplayer 는 동영상을 재생해주는 재생기인데 이는 콘솔 프로그램입니다. 즉, 굉장히 저사양인대신 활용하기가 좀 난감함 놈이지요. 그래서 이를 개선하기위해 겉에 UI부분 프로그램이 여럿 나왔는데, 대표적으로 MPUI, SMPlayer 등이 있습니다. 이런 프로그램들이 UI를 맡아서 mplayer 를 조작해주는 것입니다. 즉, smplayer 단독으로는 작동되지 않으며 mplayer 가 필요합니다. 예전에는 MPUI 를 많이 쓰는 추세였으나 이게 윈도 전용인데다 업데이트도 너무 느려서 Qt 라이브러리를 사용해서 어느정도 멀티 플랫폼도 지원되는 smplayer 로 변경되는 추세인듯 하네요.

  8. Stia 2010.04.11 19:43 신고 Address Modify/Delete Reply

    mplayer 설정파일에
    vo=Driectx를 vo=gl2이나 vo=gl로 변경해주시면 에어로상에서도 정상작동합니다.
    컨트롤 + Q로 보아도 mpui로 봐도 정상작동합니다.


헬마입니다.

굉장히 오랜만에 리팩관련 글을 쓰는 것 같네요.

그동안 바쁘다는 핑계로 9.1X 버전들에 대한 업데이트를 무시하고 있었는데 몇 일전에 보니 버전 10 베타판이 시작되었더군요.

자세한 정보는 아래의 링크를 참조하시면 됩니다.

http://www.emeditor.com/modules/news/article.php?storyid=74

가장 크게 달라진 점은 문서를 비교할 때 Diff 플러그인을 쓰는 것이 아니라 자체적으로 지원합니다. 덕분에 이제 Diff 플러그인은 삭제되었습니다.

리팩판에는 아직 Diff 플러그인을 남겨두었습니다. ^^

그외에 문서를 나눠서 배치할 때 스크롤을 같이 하게 한다던지, 하는 개선사항이 있구요.

크게 바뀐점은 철자법 점검을 지원합니다. OpenOffice, FireFox 등에서 사용되는 사전 형식을 그대로 사용할 수 있네요. OpenOffice Wiki 에서 구한 한글 사전 파일을 넣어놓았습니다. 시험해보시고 안되면 연락주세요.

아직 한글화는 완벽히 끝나지 않았습니다. 이상한 점이나 한글화가 덜 된 곳을 발견하시면 알려주세요.



댓글을 달아 주세요

  1. BlogIcon 츠이사키 2010.03.25 22:24 신고 Address Modify/Delete Reply

    7버젼대를 사용하다가, 기능상 불편한 점이 생겨서 업뎃됬나, 하고 찾아다니다가 발견하게 되었습니다.
    감사히 사용하겠습니다.

  2. 감사함 2010.03.27 21:12 신고 Address Modify/Delete Reply

    언제나 좋은자료 잘 받아사용하고 있습니다.

    하지만 30일 등록으로 등록이 안되네요..

    예전 8.0 버젼에서는 안그랬는데... 9.0 등록해서 사용할수 없을까요?!

    • BlogIcon 헬마 2010.03.28 00:43 신고 Address Modify/Delete

      현재 10버전은 베타가 진행중인 제품으로 일정기간동안 무료로 모든 기능을 사용할 수 있도록 풀려있습니다. 현재 베타3는 5월 31일까지 사용기간입니다. 그전에 새 버전이 나올확률이 1000% 지만요 ^^

VMWare Workstation 7.1 Beta

잡담 2010.03.19 09:11 |

헬마입니다.

VMware Workstation 7.1 버전 베타가 시작되었습니다.

첫버전째 베타 기간은 5월까지 인듯하네요.

개선된 기능이 몇 가지 있습니다.

OpenGL 2.1 지원 및 그래픽 성능 80% 가량 대폭 향상.. 가장 눈에 띕니다. 에어로가 켜진 게스트 윈도에서 눈에 띄게 빨라졌더군요.

시퓨 8way SMP  지원...

윈도 XP Mode VM 가져오기 기능..

VM에 윈도 계정 정보를 저장하여 자동 로그인 기능..

윈도 XP Mode 처럼 VM 내의 어플을 직접 실행하는 기능등이 생겼네요..

더욱 자세한 정보는 http://communities.vmware.com/community/beta/ws 이곳에서 확인하실 수 있습니다.

밑의 화면은 ATi HD4670 에서 체험지수 테스트한 것입니다. 테스에서는 게임그래픽이 2.0 정도로 최악이었지요. 확인히 개선되네요


'잡담' 카테고리의 다른 글

NAS 에 SVN Server 올리기 성공!!!  (2) 2010.04.21
파이썬 도움말 제작방법 아시는분을 찾습니다.~  (1) 2010.03.30
VMWare Workstation 7.1 Beta  (0) 2010.03.19
알라딘.. 배송 상태 제정신인가...  (6) 2010.02.25
트위터 시작!!!  (1) 2010.02.25
엣지란????  (1) 2009.11.11

댓글을 달아 주세요

헬마입니다.

  이제 마지막 글입니다. 총 3개의 글로 올라갈 것 같네요. 워낙 타자 속도가 느리니 이정도 글 번역하는데 며칠이 걸리는지 모르겠네요.

원문 글 링크 : http://blogs.msdn.com/vcblog/archive/2010/03/02/visual-studio-2010-c-project-upgrade-guide.aspx


VS2010 에서 변환작업에 대해 알려진 문제점

VS2010 에서 변환작업에 대해 알려진 문제점이 몇가지 있습니다 :

    1. 대상 프레임워크 버전
        변환 후에 관리되는 C++ 프로젝트는 기본값으로 4.0 프레임워크를 대상으로 합니다. 이러한 동작의 숨겨진 이유는 VS2010 컴파일러는 프레임워크 2.0, 3.0, 3.5를 대상으로 할 수 없기때문입니다. VS2008 컴파일러는 반드시 2.0, 3.0 또는 3.5 를 대상으로 해야합니다. 변환된 C++ 어플리케이션이 빌드되도록 하기위해 우리는 TargetFrameworkVersion 을 C++ 어플리케이션에 대해서 4.0 을 기본값으로 변경했습니다. C++ 어플리케이션은 아래의 방법들 중 하나를 사용하여 다른 프레임워크 (예: 3.5 ) 를 대상으로 할 수 있습니다 .
        - vcxproj 파일을 편집하고 첫번째 속성 그룹에서 아래와 같은 줄을 추가로 선언합니다 :
            <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>       
        - VS2010 명령행을 열어 set TargetFrameworkVersion=3.5 를 실행 후 start devenv.exe 를 통해 IDE 를 실행합니다. 이렇게 하면 여러분의 모든 C++ 어플리케이션의 v3.5 프레임워크를 대상으로 합니다.
        - 어플리케이션을 빌드할 때 MSBuild 에 /p:TargetFrameworkVersion=v3.5 를 넘깁니다 : MSBuild my.vcxproj /p:TargetFrameworkVersion=v3.5

        알림 : 어플리케이션이 2.0, 3.0, 3.5 를 대상으로 하려면 컴퓨터에 VS2008 이 설치되어 있어야합니다.
        C#/VB 어플리케이션의 경우에는 변환 후에도 대상되는 프레임워크가 설치되어있다면 대상 프레임워크를 변경하지 않습니다. 만약 대상이 되는 프레임워크가 설치되어있지 않다면, 여러분은 요구되는 프레임워크를 내려받거나 대상 프레임워크를 4.0으로 하는 것중 선택할 수 있습니다.

        - 만약 여러분의 솔루션에 C#/VB/관리되는 C++ 프로젝트가 섞여있다면, 여러분은 C#/VB 어플리케이션과 관리되는 C++ 어플리케이션이 서로 다른 프레임워크를 대상으로 삼고 있는 현상을 겪을 수 있습니다. 만약 참조된 프로젝트가 참조하는 프로젝트의 프레임워크 버전보다 더 높은 프레임워크 버전을 가지고 있다면 MSB3258 경고를 겪을 수 있습니다.
        -
        - 또는 C4691 과 같은 경고를 겪을 수 있습니다 : type referenced was expected in the unreferenced assembly ‘file’, type defined in current translation unit used instead, if the Framework version of the referencing project is higher.

        - 여러분 솔루션의 모든 프로젝트를 같은 프레임워크 버전으로 대상을 다시 지정해야합니다.

    2. makefile "Output" 디렉토리에서 사용되는 따옴표
        만약 "Output" 속성에 따옴표가 사용된 makefile 프로젝트를 가지고 있다면, 변환이 실패합니다. 이 문제를 해결하려면 변환을 하기전에 "Output" 속성에서 따옴표를 제거하면 됩니다.

    3. $(IntDir) 과 $(OutDir) 에서 역슬래시
        $(IntDir) 과 $(OutDir) 은 속성 페이지에서 "General -> Intermediate Directories" 와 "General -> Output Directories" 를 통해 확인할 수 있습니다. $(IntDir) 과 $(OutDir) 의 서식을 맞추기위해 이 값들을 변환할 때 어느 하나가 "\" 를 가지고 있지 않다면 의도적으로 "\" 를 추가합니다. 마지막에 "/" 가 있다면 제거됩니다.

        그러나, 이러한 작업은 $(IntDir) 또는 $(OutDir) 이 makefile 또는 Exec 작업이 사용된 사용자 빌드에서 사용되는 빌드 시나리오를 망가뜨릴 수 있습니다.

        makefile 의 경우에 nmake 도구는 끝문자가 "\" 인 값을 평가하지 못합니다. 예를 들어, 아래와 같은 명령입니다.

BuildCommandLine="nmake /nologo &quot;OUT=$(OutDir)&quot; &quot;OBJ=$(IntDir)&quot;"

        왜냐하면, $(OutDir) 과 $(IntDir) 은 마지막 "\" 문자를 가졌고 nmake 도구는 이것들을 적절히 확장하지 못하고 OUT 과 OBJ 는 결과적으로 빈문자열로 평가받습니다. 이러한 문제를 고치려면 속성페이지에서 $(IntDir) 과 $(OutDir) 에 대해서 "\" 를 제거해야합니다.

        $(OutDir) 또는 $(IntDir) 를 사용자 빌드 -빌드 이벤트, 사용자 빌드 도구, 사용자 빌드 단계를 포함하여 - 에 넘겼다면 도구들에 의해 "\" 문자가 탈출문자로 취급될수도 있다는 점으로 인해 빌드 실패를 겪을 수 있습니다. 예를 들어, 아래와 같은 사전빌드 이벤트를 가지고 있다고 해보죠. 

        명령행은 다음과 같이 될겁니다 : cl /c /Fo"Debug\\" "C:\foo\win32.cpp" 대신 cl /c /Fo"Debug\" "C:\foo\win32.cpp" 로 말입니다.
        이러한 문제점을 수정하려면, 탈출문자를 완성하기 위해 /Fo 에 넘겼던 값( C/C++ -> Output Files -> Object File Name ) 에 "\" 문자를 추가합니다.

    4. 솔루션 탐색기 UI
        VS2010 에서 솔루션 탐색기에서 폴더와 파일의 표시는 .vcxproj.filters 파일에 의해 제어됩니다. 다른 범위하에서 같은 이름을 가진 폴더들이 있다면, 예를 들어, "Native\Include" 와 "Include" 라면, 두번째 "Include" 와 "Include" 하위의 파일들은 변환후에 솔루션 탐색기에 나타나지 않습니다. 이 문제를 우회하려면, 솔루션 탐색기에서 폴더를 재생성하고 이 폴더에 관련 파일들을 추가합니다.

    5. 읽기 전용 프로젝트 파일 또는 디렉토리
        읽기 전용 디렉토리에서 업그레이드를 하거나 이전에 변환했떤 프로젝트 파일이 읽기전용일 때 재변환하면 문제를 겪을 수 있습니다. 파일들과 디렉토리들을 쓰기가능한지 확인하지 않으면, 통합된 소스 제어 시스템과 마찬가지로 자동으로 체크아웃될 수 있습니다.

댓글을 달아 주세요

헬마입니다.

  며칠전에 방명록에 사용자 페이지에서 조건등을 검사하여 특정 조건이 아니면 다음 페이지로 넘어가지 않도록 하는 작업에 대해서 문의가 있었는데요. 답글을 달고 한동안 해야지 해야지 하다가 이제서야 올리게 되었습니다. ㅠㅠ

간단한 예제 스크립트입니다. 컴파일 후에 실행하시면, 사용자 페이지가 나타나고 입력상자 2개에 같은 비밀번호를 숫자 4자로 입력하지 않으면 다음 버튼을 눌러도 넘어가지 않도록 되어있습니다.




!define APPNAME 'NSIS Example' 
Name 'NSIS 예제 스크립트'

OutFile 'NSIS-Example.exe'

!include "MUI.nsh"
!include "LogicLib.nsh"
!include "nsDialogs.nsh"
!include 'WordFunc.nsh'


!insertmacro MUI_PAGE_WELCOME
Page custom ConfigPage CheckConfig '' 
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_LANGUAGE 'Korean'

BrandingText 'NSIS 예제 스크립트'

!insertmacro StrFilter

Var hPassword_Text_1
Var hPassword_Confirm

Function ConfigPage
  !insertmacro MUI_HEADER_TEXT '${APPNAME} 설치' '환경 설정'
  
  nsDialogs::Create 1018
  Pop $0
  
  ${If} $0 == error
  	Abort
  ${EndIf}

	${NSD_CreateGroupBox} 50% 0 50% 80% "비밀번호 설정"
	Pop $1

		${NSD_CreateLabel} 61% 20u 30% 10% '개인 비밀번호를 입력하세요'
		Pop $2
  
  		${NSD_CreatePassword} 65% 40u 20% 10% ''
		Pop $hPassword_Text_1

		${NSD_CreateLabel} 60% 70u 33% 10% '한번 더 비밀번호를 입력하세요'
		Pop $3
		
		${NSD_CreatePassword} 65% 85u 20% 10% ''
		Pop $hPassword_Confirm

		${NSD_SetTextLimit} $hPassword_Text_1 4
		${NSD_SetTextLimit} $hPassword_Confirm 4
		${NSD_OnChange} $hPassword_Text_1 nsPageUse_EditNotify
		${NSD_OnChange} $hPassword_Confirm nsPageUse_EditNotify

	nsDialogs::Show
	
FunctionEnd

Function CheckConfig
	${NSD_GetText} $hPassword_Text_1 $0
	${NSD_GetText} $hPassword_COnfirm $1
	
	${If} $0 == ''
		${OrIf} $1 == ''
			MessageBox MB_OK '빈 비밀번호는 허용되지 않습니다.'
			Abort
	${EndIf}
	
	${If} $0 != $1
		MessageBox MB_OK '입력한 비밀번호가 서로 다릅니다\r\n비밀번호는 숫자 4자리로 정해주세요' 
		Abort
	${EndIf}
	
FunctionEnd

Function nsPageUse_EditNotify
	# 통지를 보낸 컨트롤을 스택에서 꺼냄
	Pop $R0 
	
	${NSD_GetText} $R0 $0

	# 문자열을 숫자 문자열로 변환해본 후 길이가 일치하는지 확인
	StrLen $1 $0 	
	${StrFilter} $0 '1' '' '' $2
	Strlen $3 $2
	${If} $1 <> $3
		MessageBox MB_OK '비밀번호는 숫자 4자리만 가능합니다.'
		
		IntOp $1 $1 - 1
		StrCpy $4 $0 $1
		${NSD_SetText} $R0 $4
	${EndIf}
	
FunctionEnd

Section -
SectionEnd

댓글을 달아 주세요

  1. 박정근 2010.03.09 10:47 신고 Address Modify/Delete Reply

    Error: resolving install function "Nsis2Io" in function "mui.WelcomePre_12.5.9"

    에러가 나는데 혹시 원인이 뭔지 알수 있을까요^^;?

    • 헬마 2010.03.09 13:13 신고 Address Modify/Delete

      제가 컴파일한 NSIS 는 2.46 버전입니다. 2.46 을 덮어서 설치해보시고 그래도 안되면 제가 쓰고있는 NSIS 를 압축해서 올려보겠습니다.

  2. BlogIcon 주전자 2010.03.12 09:34 신고 Address Modify/Delete Reply

    아아 nsDialogs를 쓰셨군요!
    감사합니다 +ㅅ+b

  3. 임현석 2010.04.10 14:30 신고 Address Modify/Delete Reply

    NSIS 플러그 인에는 무었이있고 어떡해 사용하는지 좀 알려주세요~~

    프로세스 종료 플러그 인이라던지...

  4. 질문이요 2011.01.11 10:00 신고 Address Modify/Delete Reply

    자신이 입력하기로 원하는 비밀번호는 어디에 설정해야해요?

  5. 2012.02.13 14:01 Address Modify/Delete Reply

    비밀댓글입니다

  6. 2013.09.14 18:28 Address Modify/Delete Reply

    비밀댓글입니다

헬마입니다.

  이제 두번 째 글입니다. 총 3개의 글로 올라갈 것 같네요. 워낙 타자 속도가 느리니 이정도 글 번역하는데 며칠이 걸리는지 모르겠네요.

원문 글 링크 : http://blogs.msdn.com/vcblog/archive/2010/03/02/visual-studio-2010-c-project-upgrade-guide.aspx


업그레이드 하는 동안 경고들

변환하는 동안 여러분이 겪을 수 있는 공통적인 경고들이 몇 개 있습니다.


    1. 링커 출력 디렉토리
        여러분이 어플리케이션을 업그레이드할 때 볼 경고중에 하나는 MSB8012: $(TargetPath) and Linker’s OutputFile property value does not match:
입니다.

            - MSB8012: $(TargetExt) ('.dll') does not match the Linker's OutputFile property value 'C:\foo\Debug\MFCActiveX.ocx' ('.ocx') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetExt) property value matches the value specified in %(Link.OutputFile).

            - MSB8012: $(TargetPath) ('C:\foo\Debug\MFCActiveX.dll') does not match the Linker's OutputFile property value 'C:\foo\Debug\MFCActiveX.ocx' ('C:\foo\Debug\MFCActiveX.ocx') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).

            Link.OutputFile 은 등록정보의 링커 -> 일반 -> 출력 파일 에 선언된 값 입니다. 기본값으로 이 값은 $(TargetPath) 와 같은 $(OutDir)$(TargetName)$(TargetExt) 입니다. 그러나 이전버전에서 어플리케이션을 변환할 때 다른 고객들은 다른 방법으로 형식화된 값들을 가지고 있을 수 있기때문에 변환을 위해 $(TargetName) 과 $(TargetExt) 가 가르키는 정확한 값을 밝힐 수 있도록 Link.OutputFile 을 분석할 수 있는 쉬운 방법이 없습니다. 이 문제를 해결하기위해 우리는 변환을 하는동안 Linker.OutputFile 값을 보존하기로 결정했습니다. 변환후에 $(TargetName) 은 기본값으로 $(ProjectName) 으로 됩니다. $(TargetExt) 는 각 어플리케이션 형식에 맞는 기본값을 가질 것 입니다 : 동적 라이브러리 - .dll, 정적 라이브러리 - .lib, 어플리케이션 - .exe. Link.OutputFile 값은 그대로 보존될 것입니다. Link.OutputFile 과 $(TargetPath) 가 같지 않으면 변환 로그에 경고 MSB8012 가 발생할 것입니다. 여러분은 어플리케이션을 빌드할 때 같은 경고를 받게될 것 입니다.

            $(OutDir), $(TargetName) 과 $(TargetExt) 는 "일반" 등록정보 페이지에서 "출력 디렉토리", "대상 이름", "대상 확장자" 로 확인할 수 있습니다. 여러분은 경고를 없애기위해 이 값들을 직접 수정할 수 있습니다.

            - 만약 여러분의 프로젝트가 가져오기 라이브러리(Import Library) (Linker-> Advanced -> Import Library) 를 생성한다면, 링커 출력 디렉토리가 기본 출력 디렉토리가 아니면 변환후에 마찬가지로 가져오기 라이브러리의 출력 폴더를 변경해야합니다.

            - 변환 후에 Debugging.Command 는 $(TargetPath) 로 설정됩니다. 여러분은 F5(Debugging) 또는 Ctrl + F5(Start Without debugging) 를 눌렀을 때 올바르게 실행되도록 변경해야할 수 있습니다.

    2. 속성 시트 정렬
        여러분의 어플리케이션이 속성 시트를 가지고 있다면 변환 후에 아래와 같은 문제점들이 발견할 수도 있습니다.  :

            - 사용자 매크로 선언전에 매크로들이 사용되는 구성 'Debug|Win32' 밑에서 발견되는 모든 사용자 매크로들은 의도치 않은 빌드 결과를 가져올 수 있습니다. 이번 배포버전에서 이러한 기능은 지원되지 않습니다. 이 문제는 사용자 매크로를 선언하는 속성 시트 다음에 매크로를 사용하는 속성 시트가 오도록 포함 순서를 변경함으로써 해결할 수 있습니다.

            - MSB4211: C:\foo\PropertySheet\foo.props; The property "MyIncludePath" is being set to a value for the first time, but it was already consumed at "C:\foo\PropertySheet\bar.props".
            이 경고는 MSBuild 가 속성을 평가하는 방식때문입니다. MSBuild 는 순차적인 순서로 속성을 평가합니다. 상속받은 속성 시트에서 선언된 속성들은 속성들이 부모 속성 시트에서 사용됐다면 빈 값으로 평가됩니다. 그러나, VCBuild 는 속성들이 상속된 속성시트에서 선언되었더라도 부모 속성 시트의 속성들의 사용이 가능해지도록 지연평가를 합니다. 이 문제를 해결하려면, 경고메시지를 따라서 속성 시트의 포함 순서가 속성이 사용되기 이전에 선언되도록 변경합니다.

업그레이드 후 변경된 행동


    우리는 기반 빌드 시스템의 변경에도 불구하고 고객들이 VS 2010으로 이전하면서 같은 경험을 갖도록 유지하기위해 노력했습니다. 다른 한편으로, 몇 가지 빌드 경험 향상시키거나 또는 MSBuild 만의 요구사항에 적응하도록 하기위해 변경을 가했습니다. 그 결과로, 여러분은 VS2010 으로 이전하면서 몇몇 달라진 동작들을 알아놔야합니다.

    1. 솔루션 의존성 -> 프로젝트간 참조
        이전 버전의 Visual Studio 에서 C++ 어플리케이션을 VS2010 으로 변환하면 솔루션 단계에서 선언한 프로젝트 의존성이 프로젝트간의 참조로 변환됩니다. 이러한 변경으로 인해 C++ 프로젝트 의존성을 프로젝트 파일에서 확인할 수 있습니다. 아래 사진은 프로젝트 파일에서 프로젝트간의 참조가 어떻게 나타나는지 보여줍니다 :

 

        프로젝트 파일에 의존성 정보를 갖도록 하는 것은 여러가지 장점이 있습니다. 먼저, 사용자는 솔루션 없이도 프로젝트를 빌드할 수 있으며, 독립 프로젝트는 자동으로 빌드될 수 있습니다. 둘째, . 추가로, 많은 고객들은 다양한 솔루션 파일들은 가지고 있으며, 각 파일들은 다양한 프로젝트들의 하위모임입니다. 이러한 변경은 고객들이 각각의 솔루션 파일들에 대해 프로젝트 의존성 설정을 해야하는 일에서 해방시켜줍니다. 또 다른 중요한 사실은, 프로젝트간 참조를 통해서 설정되었을 때 빌드 의존성이 좀 더 안정적일 수 있습니다. 특히, 다중 코어를 사용해서 빌드할 때 그렇습니다. 이러한 일은 이전 버전의 Visual Studio 에서 발생했던 일입니다.


        - 여러분이 C++ 어플리케이션에 의존하는 C# 어플리케이션을 가지고 있고 이러한 읜존성이 솔루션 의존성을 통해서만 표현된다면, 현재 변환 작업은 솔루션 의존성을 프로젝트간 참조로 변경하지 않습니다. 아마도 특히, MSBuild 를 명령행에서 직접 빌드 할 때 잘못된 빌드 순서로 인해 빌드 오류를 경험할 수 있습니다. 이 문제점을 수정하려면, 직접 C# 과 C++ 어플리케이션들에 대해 프로젝트간의 참조를 적절히 설정해야합니다.

        - 일반적으로 VS2010 에서 빌드 의존성을 설정할 때 솔루션 의존성 대신 프로젝트간 참조를 사용하세요.

    2. 프로젝트간 참조 속성 변경
        변환 후에, CopyLocalDependencies 와 UseDependeciesInBuild 속성은 삭제됩니다. "Use in Build" 속성은 속성의 기능을 더욱 드러내도록 "Refernce Assembly Output" 으로 변경됩니다. 두 개의 속성 : "Link Library Dependencies" 와 "Use Library Dependency Inputs" 속성이 참조되는 프로젝트가 프로젝트의 출력을 참조하는 프로젝트에 넘길지 아닐지 제어할 수 있도록 하기위해 참조되는 프로젝트에 추가되었습니다. 아래 사진은 VS2008 과 VS2010 의 프로젝트간 참조 속성들의 비교사진입니다.

       - 설정 "Reference Assembly Output" 를 "false" 로 하면, 프로젝트간 참조의 부분이 된 프로젝트가 참조하는 프로젝트의 CL 에게 프로젝트의 출력을 넘기지 않아도 빌드 의존성이 설정될 수 있도록 합니다. 이 속성은 관리되는 어플리케이션에서 사용됩니다.


        - "Link Library Dependencies" 를 "false" 로 하면, 프로젝트간 참조의 부분이 된 프로젝트가 참조하는 프로젝트의 링커에게 프로젝트의 출력을 넘기지 않아도 빌드 의존성이 설정될 수 있도록 합니다.

   3. VC++ 디렉토리 변경
        VC++ 디렉토리는 더이상 도구 -> 옵션 페이지를 통해서 지원되지 않습니다. 대신, VS2010 은 전역 검색 경로를 포함하여 전역 설정을 제어하기 위해 사용자 설정 파일(Microsoft.cpp.<Platform>.users.props) 을 사용합니다. 이 파일들은 $(USERPROFILE)\appdata\local\microsoft\msbuild\v4.0 디렉토리에 있습니다. VS2010 으로 이전할 때 VS2005 또는 VS2008 의 VC++ 디렉토리의 사용자 설정들은 이 사용자 파일로 이전됩니다. 이 전역 설정파일등른 모든 변환되는 프로젝트와 새로 생성되는 프로젝트에 사용됩니다.

        UI 를 통해서 설정을 변경하는 절차는 아래와 같습니다 :
            - View.Property.Manager 를 클릭하여 속성 관리자를 엽니다.

            - 프로젝트 항목을 확장해서 Configuration|Platform 선택하면 "Microsoft.cpp.<Platform>.users" 라는 파일을 각 Configuration|Platform 마다 확인할 수 있습니다. 이 파일들이 이전의 Tools/Options/VC++ 디렉토리와 유사하게 전역 설정을 담고 있습니다.

            - "Microsoft.cpp<Platform>.users" 를 여러개 선택하여 오른쪽 버튼을 누르고 등록정보 페이지를 엽니다.

            - 등록정보 페이지 창에 왼쪽 페인에서 "VC++ Directories" (예를 들어) 를 눌러서 "Include Directories" 와 같은 곳에 세미콜론으로 구분하여 새로운 경로를 추가합니다.

            - Visual Studio 를 종료하기 전에 설정을 저장합니다.

            - Visual Studio 를 새로 시작하면 새로운 설정이 적용됩니다.

        알림 : 만약 어떤 프로젝트에 대한 설정만 변경하고 싶다면, 프로젝트에서 오른쪽 버튼을 눌러 속성 페이지를 불러올 수 있습니다. "VC++ Directories" 설정을 변경하면 이 설정들이 프로젝트 파일에 적용됩니다.

   4. 사용자 빌드 규칙 변경
        VS2008 에서 사용자 빌드 규칙은 .rules 파일에 선언되었습니다. 변환 작업은 .rules 파일들을 3 개의 분리된 파일로 변환합니다 : .targets, .xml, .props 파일입니다. 여러분은 변환후에 rules 파일들이 있던 디렉토리에서 이 파일들을 찾을 수 있습니다. 새로운 사용자 빌드 규칙을 추가할 수 있는 이용가능한 UI 는 없습니다.

    5. 업데이트 점검 변경
        여러분이 F5 를 누르면 아마도 방금 재빌드를 한 직후에도 언제나 점검 대화상자가 나타나는 상황을 겪었을 수도 있습니다. 이 문제를 해결하기위해 이 블로그를 참조할 수 있습니다. 어찌되었든, 이러한 문제가 나타난 원인은 프로젝트 파일의 일부분으로 되어있는 몇몇 파일들이 디스크에는 없었기 때문입니다. 왜냐하면, 이들 파일들은 프로젝트 파일들의 일부분이고 업데이트 점검 작동방식은 해당 파일들의 존재여부를 점검할 것 이기 떄문입니다. 만약 이 파일들이 디스크에 없으면 업데이트 점검은 새 빌드가 필요하다고 가정합니다. 해결방법은 만약 디스크에 파일들이 없으면 프로젝트 파일들에서 이 파일들을 삭제하는 것입니다.

    우리가 VS2010 에서 가진 한가지 제한은 관리되는 증분 빌드를 지원하지 않는다는 것입니다. 우리는 미래의 배포버전에서 이 기능을 다시 가져오기위해 연구하고 있습니다.

댓글을 달아 주세요

헬마입니다.

  그제쯤인 것 같은데, VC++ Team Blog 를 보다보니 이전 버전의 Visual Studio 에서 VS2010 으로 프로젝트를 업그레이드 할 때 주의사항이라든가 절차등에 관한 꽤나 긴 글이 올라왔더군요. 찬찬히 읽어보다 번역을 해놓으면 차후에 살펴볼 때 편하겠다 싶어서 번역을 해봤습니다. 원문은 단 한번의 포스트인데 장문의 글로인해 짬짬이 번역하는데 시간이 오래걸려서 몇개의 부분으로 나누어서 올리도록 하겠습니다. ^^

원문 글 링크 : http://blogs.msdn.com/vcblog/archive/2010/03/02/visual-studio-2010-c-project-upgrade-guide.aspx



  안녕하세요. 제 이름은 Li Shao 입니다. 저는 C++ 팀의 Test 분야의 Software Design Engineer 를 맡고있습니다. 이전의 수많은 블로그들 - Felix Huang 의 블로그, Andreea Issac 의 블로그, 저의 이전 블로그 -에서 언급되었던 바와 같이 이번 배포버전의 주 개선점 가운데 하나는 C++ 빌드 시스템이 VCBuild 기반에서 MSBuild 기반 빌드 시스템으로 이전되는 것입니다. C++ 프로젝트 시스템은 또한 MSBuild 빌드 시스템의 상단에서 제작되었습니다. 이러한 일들은 수 많은 변화를 만들었습니다. 우리의 목표는 최종 사용자 관점에서 가능한 업그레이드 작업을 부드럽게 할 수 있도록 하는 것입니다.

업그레이드 절차

    VS2010 은 VC6, VS2002, VS2003, VS2005, VS2008 로부터 업그레이드를 지원합니다. 이전 버전의 Visual Studio 에서와 마찬가지로 업그레이드는 IDE 의 변환 마법사를 통하거나 명령행 ( devenv /upgrade ) 을 통해서 할 수 있습니다.

    여기에 여러분의 어플리케이션을 업그레이드하기 위해 권장하는 절차가 있습니다 :

        1. 빌드 환경과 같이 업그레이드 환경을 설정합니다.
            업그레이드 작업은 업그레이드하는 동안 파일을 불러들이고 값을 평가합니다. 만약 여러분의 프로젝트가 프로젝트 파일에 의해 선언되지 않은 값들을 사용한다면, 예를 들어, 환경 변수에 의해 설정되는 값들, 업그레이드를 하기 전에 환경변수를 설정해야 합니다. 이러한 환경 변수를 적절히 설정하지 않으면, 평가되지 않은 값에 의해 변환 오류 또는 경고를 얻을 수 있습니다.

        2. 업그레이드를 하기 전에 필수 플랫폼이 설치되었는지 확인하세요.
            프로젝트에 대해 이용가능한 모든 플랫폼이 없는 컴퓨터에서 프로젝트를 변환하면 변환오류를 일으킬 수 있습니다. 예를 들어, 여러분이 Itanium 플랫폼을 지원하지 않는 Visual Studio Professional SKU 에서 Itanium 플랫폼 프로젝트를 변환하려하면 아래와 같은 변환 오류 창을 보게 될 것입니다.

Failed to upgrade 'Debug|<Itanium>'. Please make sure you have the corresponding platform installed under '%vctargetspath%\platforms\Itanium'. Cannot load the project due to a corrupt project file. The following error has occurred during XML parsing:
File: D:\Sample\ConsoleApp\ConsoleApp.vcproj
Line: 28
Column: 5
Error Message:
System error: -2147154677.
The file 'D:\Sample\ConsoleApp\ConsoleApp.vcproj' has failed to load.

            이러한 오류는 설계상 의도된 사항으로 왜냐하면, 변환 작업은 변환을 성공시키기 위해 빠진 플랫폼들 안에서 속성을 평가해야하기 때문입니다. 여러분은 다음과 같은 디렉토리들을 살펴봄으로써 컴퓨터에 설치된 플랫폼들을 확인할 수 있습니다: %ProgramFiles%\MSBuild\Microsoft.cpp\V4.0\Platforms (or %ProgramFiles(x86)%\MSBuild\Microsoft.cpp\V4.0\Platforms on x64 machine)

        3. 가능하다면 먼저 VS2008 툴셋을 사용해서 빌드할 수 있도록 직접적인 다중-대상(Multi-Targeting) 기능을 사용하세요.

            VS 2010 에서 새로운 MSBuild 기반 프로젝트 시스템을 사용해서 VS2010 IDE 내부에서 Visual Studio 2008 툴셋을 사용해서 빌드할 수 있도록 해주는 다중-대상 기능을 추가했습니다. 우리는 고객들에게 이러한 기능을 추천하며, 특히 대단위의 코드양을 가진 고객들이 최초 업그레이드를 할 때 VS2008 툴셋을 사용해서 빌드하기위해 VS2010 을 사용함으로써 이 기능을 이용할 수 있습니다. 이 기능은 업그레이드 후에 겪을 수 있는 도구 문제로부터 어떠한 프로젝트 시스템/빌드 시스템 관련된 문제를 분리할 수 있도록 합니다. 이러한 일들은 VS2010 툴셋으로 좀 더 부드럽게 이동할 수 있도록 합니다.

    업그레이드를 할 때, 등록정보 시트 파일(.vsprops) 들은 새로운 형식(.props) 로 변환됩니다. 마찬가지로 프로젝트 파일(.vcproj) 들은 새로운 형식인 (.vcxproj) 로 변환됩니다. 알림 : 새로운 프로젝트 파일들은 과거의 프로젝트 파일들과 같은 곳에 생성됩니다. 새로운 파일 형식(.filter.vcxproj) 또한 변환 중에 생성됩니다. 필터 파일들은 솔루션 탐색기에서 폴더들은 표시하는데 사용된 정보들을 담고 있습니다. 이러한 필터 정보들은 원래 프로젝트 파일의 일부분이었습니다. MSBuild 는 프로젝트 파일이 변경될 때 마다 재빌드를 요구하기 때문에 이러한 변경이 필요했습니다. 필터 정보를 분리된 파일에 저장함으로써 전체 프로젝트를 재빌드하게 하지 않고 필터들이 변경될 수 있게 되었습니다. 
        
            알림 : 업그레이드 작업은 .user 파일은 변환하지 않을 것입니다. 그 결과로, 여러분의 디버깅과 배포 설정은 변환 후에 보존되지 않습니다.

    VS2010 에서 새로운 명령행 업그레이드 도구인 VCUpgrade.exe 가 소개되었습니다. 이 명령행 도구는 오직 하나의 프로젝트로된 어플리케이션 업그레이드에 적합하기 때문에 솔루션 파일을 입력으로 받아서 정보를 분석해서 프로젝트 파일들을 취할 수 없습니다. VCUpgrade.exe 는 $(VSInstallDir)\common7\Tools 디렉토리에 위치하고 있습니다. 이 도구는 Visual Studio IDE 없이 WinSDK 에 포함된 프로젝트 파일들의 명령행 업그레이드를 위해 WinSDK 의 다음 배포판에 포함될 예정입니다.

댓글을 달아 주세요


헬마입니다.

최근에 회사에서 자바관련 업무를 맡게되어 촉박한 일정상 당일배송된다는 알라딘에서 책을 구매했습니다.
 
그런데... 책이 올 생각을 안하는군요..

분명히 알라딘 당일 배송이 낮 12시이전 결제인걸로 알고 있는데..

3일전 오전 9시 35분에 접수와 함께 결제한 것이 왜 아직도 출고작업중인거냐....

더구나 02/23 에 마우스를 갖다대면 "예상보다 빨리 처리되었어요" 이따구 개소리를 하지를 않나..

오늘 배송불편 전화했더니 한시간내 전화한다더니 소식도 없고..

내 다시는 알라딘 구매안한다.. 망할넘들



'잡담' 카테고리의 다른 글

파이썬 도움말 제작방법 아시는분을 찾습니다.~  (1) 2010.03.30
VMWare Workstation 7.1 Beta  (0) 2010.03.19
알라딘.. 배송 상태 제정신인가...  (6) 2010.02.25
트위터 시작!!!  (1) 2010.02.25
엣지란????  (1) 2009.11.11
방 정리하다가 책 자랑!!  (7) 2009.10.19

댓글을 달아 주세요

  1. BlogIcon 천린 2010.02.25 17:10 신고 Address Modify/Delete Reply

    우와와;;; 입금날짜까지도 똑같네요... 제정신이 아닌듯 알라딘...

  2. BlogIcon vi@live.co.kr 2010.02.26 01:02 신고 Address Modify/Delete Reply

    산간벽지는 배송이 차질이 발생합니다.
    시내한가운데 사시길 ㅡ.ㅡ;; ㅋㅋㅋ

  3. rein 2010.03.10 19:11 신고 Address Modify/Delete Reply

    ㅠㅠ 저도 똑같은상황... 내일까지... 그러면 주문취소하고 교보로.... 해야겟죠..

  4. phlm 2010.05.13 18:32 신고 Address Modify/Delete Reply

    제정신 아닌듯 ㅋㅋ
    저도 yes24 에서 사려다 당일 배송 된다길래 알라딘에서 샀는데 어제(12일) 오전 11시 쯤에 결제했는데 아직까지 안옵니다 ㅋㅋ 같은 날 yes24에서 주문한 책은 벌써 옆에 있는데.... 알라딘 망할놈들. 내 다신 알라딘에선 안 산다.

  5. BlogIcon 제대로보시지 2010.08.02 19:17 신고 Address Modify/Delete Reply

    제데로 안보신듯..확실히 알x딘이 x맛이지만 수령예정일 보이시죠..
    그거 보고 구입해야합니다.책들중 당일배송 안돼는것두 있고요.
    그리고 너무 오래걸리는것은..책이 없어서 구한다음 보내느라 늦는거예요.

  6. 알라딘 다신안한다 2010.08.22 12:24 신고 Address Modify/Delete Reply

    저 알라딘 배송에 짜증나죽는줄
    목요일날 주문햇는데 토요일날 온다고 문자오더니 안옴 ㅡㅡ
    아빡쳐..월요일날 그 배달오는 책 숙제해서 학교에 가져가야되는데
    배송 취소할라햇더니 알라딘 회사에서는 이미 보낸물품이라 반품만되는데 반품비만 2천원 ㅡㅡ
    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
    학교에서 털리고 책은 못받고 기분은 빡치고
    알라딘 시1발ㅡㅡ
    저도 앞으론 알라딘에서 주문 안할꺼예요 진짜 짜증남 ..

트위터 시작!!!

잡담 2010.02.25 10:42 |
헬마입니다.

오늘 갑자기 무슨 바람이 불어서인지 대세에 따라 트위터를 만들어보았습니다.

http://twitter.com/jgh0721 

입니다.

이제 트위터 사용법 같은 것도 열심히 익혀야겠군요.

간단하게 잘 쓰는 방법 알려주시면 매우 감사합니다~~ ㅎㅎ

'잡담' 카테고리의 다른 글

VMWare Workstation 7.1 Beta  (0) 2010.03.19
알라딘.. 배송 상태 제정신인가...  (6) 2010.02.25
트위터 시작!!!  (1) 2010.02.25
엣지란????  (1) 2009.11.11
방 정리하다가 책 자랑!!  (7) 2009.10.19
와우 하다가 한 장면..  (0) 2009.10.10

댓글을 달아 주세요

  1. BlogIcon 스톤헤드 2010.02.25 19:20 신고 Address Modify/Delete Reply

    팔로우 하고 갑니다.^^*

티스토리 툴바