Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Visual C++ 프로젝트의 빌드 이벤트에서 환경 변수 사용하는 방법

전역적으로 사용하는 COM 객체가 있는데 빌드할 때마다 잠겨 여간 불편한 것이 아닙니다. 이럴 때는 빌드 이벤트에서 "Pre-Build Event"를 통해 빌드 전에 기존 빌드된 COM DLL의 이름을 바꾸는 식으로 우회할 수 있습니다.

그래서 다음과 같이 "Command Line" 내용을 구성해봤는데요.

SET DATETIME=...[생략]...
ren $(TargetPath) $(TargetName)_%DATETIME%$(TargetExt)

아쉽게도 이렇게 해주면 %DATETIME% 문자열을 다음과 같이 깨진 체로 인식하게 되고 결국 명령은 실패하게 됩니다. ("\00DA"의 유니코드 문자가 "Ú"입니다.)

ren C:\...[생략]...\COMObject64.dll COMObject64_ÚTETIME%.dll

즉, '%' 문자가 이스케이프 시퀀스 용도가 되기 때문에 그대로 쓰면 안된다는 것인데요. 따라서, % 문자 자체를 나타내기 위해 그 문자 코드에 따라 '%' 대신 '%25'로 쓰면 됩니다. 결국, ^^ 최종적으로 다음과 같은 명령행을 구성해 주면 COM 구성 요소 빌드 전에 파일명을 바꿔주어 잠김 오류 없이 빌드에 성공하게 됩니다. ^^

del /q $(OutputPath)$(TargetName)_*.dll

SET DATETEXT=%25date:~0,4%25%25date:~5,2%25%25date:~8,2%25
SET TIMETEXT=%25time:~0,2%25%25time:~3,2%25%25time:~6,2%25

SET DATETIME=%25DATETEXT%25_%25TIMETEXT%25

ren "$(TargetPath)" "$(TargetName)_%25DATETIME%25$(TargetExt)"
exit 0

prebuildevent_vc_1.png




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 10/1/2015]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 196  197  198  199  [200]  201  202 
NoWriterDateCnt.TitleFile(s)
58정성태10/3/200430006.NET Framework: 11. HttpContext의 간략이해
56정성태10/3/200426603.NET Framework: 10. [.NET 리모팅] 원격개체를 호출한 클라이언트의 연결이 유효한지 판단하는 방법.
55정성태10/3/200427126COM 개체 관련: 11. 내가 생각해 보는 COM의 현재 위치
54정성태8/30/200432847VC++: 10. 내가 생각해 보는 MFC OCX와 ATL DLL에 선택 기준
53정성태11/20/200532033VC++: 9. CFtpFileFind/FtpFileFind가 일부 Unix FTP 서버에서 목록을 제대로 못 가져오는 문제
184정성태11/23/200525242    답변글 VC++: 9.1. FTP 관련 토픽파일 다운로드1
51정성태6/24/200430806VC++: 8. BSTR 메모리 할당 및 해제(MSDN Library 발췌) [1]
50정성태6/16/200424064기타: 6. 1차 데스크톱 컴퓨터 사양
49정성태6/16/200424406기타: 5. 53만 원대 Second PC 마련. ^^
48정성태3/2/200426172.NET Framework: 9. 윈도우즈 발전사를 모아 둔 사이트. [1]
47정성태11/14/200524603VS.NET IDE: 7. 한글 OS에서 Internet Explorer 6.0 with SP1의 UI 언어 바꾸는 방법
45정성태1/26/200423912기타: 4. MCAD 시험
44정성태1/26/200424811VS.NET IDE: 6. 터미널 서비스 포트 변경 ( 서버 및 클라이언트 )
46정성태1/26/200429872    답변글 VS.NET IDE: 6.1. Windows 2003 터미널 서비스 라이센스 서버 없이 접속
114정성태11/14/200520864    답변글 VS.NET IDE: 6.2. [터미널 서버 라이센스] : 활성화 시 오류
43정성태12/23/200324736기타: 3. XP/2003 개인 방화벽 설정파일 다운로드1
40정성태7/23/200328129COM 개체 관련: 10. IE BHO 개체를 개발할 때, 인터넷 익스플로러가 아닌 탐색기에서 활성화 되는 문제 해결 [1]
41김성현7/24/200326975    답변글 COM 개체 관련: 10.1. [답변]: IE BHO 개체를 개발할 때, 인터넷 익스플로러가 아닌 탐색기에서 활성화 되는 문제 해결
42정성태7/29/200324788        답변글 COM 개체 관련: 10.2. feedback 을 받기 위해서 답변 기능을 가능하게 해두었습니다.
39정성태7/17/200330690VS.NET IDE: 5. 원격 제어 3가지 방법
38정성태7/17/200326957.NET Framework: 8. IIS 서버 재설치와 ASP.NET 서비스의 문제점
36정성태7/17/200327747.NET Framework: 7. 시행착오 - WebService 참조 추가 오류
35정성태7/17/200328280.NET Framework: 6. Win2000에서의 .NET COM+ 자동 등록 오류 발생 해결
34정성태7/17/200326863VS.NET IDE: 4. VC++ 원격 디버깅파일 다운로드1
33정성태7/17/200327114VS.NET IDE: 3. Win2000 NAT 서비스
32정성태7/17/200328424COM 개체 관련: 9. _bstr_t, CComBSTR, string 클래스 사용 [1]
... 196  197  198  199  [200]  201  202