성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
[공진영] 안녕하세요 좋은글 감사합니다. 현재 제가 wpf로 관제 모...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <br /> <div class='mainCenterTitle'>Orcas - ComUtil로 인한 증분(/INCREMENTAL) 링크 옵션 사용 제한</div><br /> <br /> 예제 소스를 먼저 풀어보는 것이 좋겠지요. <br /> 다음과 같은 Win32 Console Application 소스를 간단하게 만들어 본 후 빌드를 해보십시오.<br /> <br /> <pre class='code'> #include "stdafx.h" #include "MyTest.h" <b>#include "comutil.h"</b> #pragma comment( lib, "<b>comsuppwd.lib</b>" ) //#pragma comment( lib, "comsuppw.lib" ) int _tmain(int argc, _TCHAR* argv[]) { char *pStr = "TEST"; BSTR bstrText = <b>_com_util::ConvertStringToBSTR</b>(pStr); return 0; } </pre> <br /> 빌드로 인한 "Output" 창의 내용은 다음과 같습니다.<br /> <br /> <pre class='code'> 1>------ Build started: Project: UseComUtil, Configuration: Debug Win32 ------ 1>Compiling... 1>stdafx.cpp 1>Compiling... 1>UseComUtil.cpp 1>Compiling manifest to resources... 1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 1>Copyright (C) Microsoft Corporation. All rights reserved. <b>1>Linking... 1>comsuppwd.lib(comutil.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 1>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification </b> 1>Generating code 1>Finished generating code 1>Embedding manifest... 1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 <b>1>Copyright (C) Microsoft Corporation. All rights reserved. 1>comsuppwd.lib(comutil.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 1>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification </b> 1>Generating code 1>Finished generating code 1>Build log was saved at "file://d:\temp\uacTest\UseComUtil\UseComUtil\Debug\BuildLog.htm" 1>UseComUtil - 0 error(s), 2 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== </pre> <br /> 보시는 것처럼, comsuppwd.lib 라이브러리가 "/GL (Whole Program Optimization)" 옵션으로 빌드되어 있어서, 그 영향으로 인해 전체적인 링크가 다시 "/LTCG (Link-time Code Generation)"과 함께 수행되어버렸습니다.<br /> <br /> 증분링크(/INCREMENTAL - Link Incrementally)가 무시되어 "/LTCG"로 빌드되었으니, 링크 과정의 시간 손실은 물론이고 디버깅 시에 코드를 수정하는 것이 가능했던 "<a target='tab' href='https://blog.naver.com/debug_lab/223130365846'>EnC (Edit and Continue)</a>" 기능마저 사용할 수 없게 되었습니다. (실제로, 위와 동일한 코드를 VS.NET 2005에서 하게 되면 증분 링크 옵션이 정상적으로 동작합니다.)<br /> <br /> 제 생각에는, Microsoft가 comsuppwd.lib에 대해서 빌드를 잘못한 것이 아닌가 예상해 봅니다. 디버그 버전인 "comsuppwd.lib"는 "/GL" 옵션을 제거했어야 하고, 릴리스 버전인 "/comsuppw.lib"에만 "/GL" 옵션을 주었어야 하죠. 아니면, "comsuppw(d).lib" 쪽에 C++/CLI 코드가 함께 있는 것이 아닌가 싶기도 하고.<br /> <br /> 다음 베타 버전,,, 적어도 RTM 버전에서는 이 문제가 수정되겠지요. ^^<br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
4680
(왼쪽의 숫자를 입력해야 합니다.)