어셈블리 동적 로딩의 문제점
당분간은 C++/CLI에서 손 떼고 Visual C++에 전념할 듯 하다. 그 전에 마지막으로 그 동안 해왔던 일을 정리해볼까 한다. 어셈블리 동적 적재와 해제 일반 DLL와 달리 어셈블리는 마음대로 불러들였다가, 떼낼 수가…
당분간은 C++/CLI에서 손 떼고 Visual C++에 전념할 듯 하다. 그 전에 마지막으로 그 동안 해왔던 일을 정리해볼까 한다. 어셈블리 동적 적재와 해제 일반 DLL와 달리 어셈블리는 마음대로 불러들였다가, 떼낼 수가…
지난 화요일, 제헌절에 미희 불러서 또 연극 보러 갔다. 동숭아트센터 씨어터컴퍼니 홈페이지에서 연극을 사랑하는 사람, 연애인으로 가입하면 티켓 가격을 할인 받을 수 있다. 한데 그것도 모르고 연애인이 뭔데?라면서 무턱대고 결제하고…
2007.07.20 실험 조건을 조금 바꿔서 테스트를 다시 해봤다. 지난번엔 Debug 모드로 컴파일했는데, 이번에는 Release 모드에서 Use Link Time Code Generation 최적화 옵션을 추가했다. 뿐만 아니라 /clr 옵션을 제거한 완벽한 네이티브…
네이티브 C++에서의 DLL을 CLR 환경에선 Assembly라 부른다. 그런데 CLR 환경에선 한번 불러들인(Load) 어셈블리를 마음대로 해제(Unload)할 수가 없다. 애초에 System::Reflection::Assembly에는 Unload에 해당하는 함수 자체가 없다. 단 독립적인 메모리 공간을 갖는 애플리케이션…
32비트 컴파일할 땐 문제 없던 C++/CLI 코드가 64비트로 컴파일하자 링킹 오류를 내고 죽었다. 다음은 실제 프로젝트 코드에서 나온 오류 메시지 그대로이다. 물론 알아볼 수 없게 소스 코드 이름이나 프로젝트 이름을…
Microsoft Visual C++ 2005를 사용한 프로필 기준 최적화 요약 링크 시간 코드 생성(LTCG)과 프로필 기준 최적화(PGO)를 사용하면 20% 이상 성능을 향상시킬 수 있다고 한다. ATL 서버 라이브러리와 도구 소스코드가 공개되었다.…
GC 모드 값에 따라 가비지 콜렉터의 개수가 달라진다고 했었다. 그러나 의문이 남았다. 한 프로그램에 애플리케이션 도메인이 여러 개 있을 때는 어떻게 될까? C++/CLI에서 Managed Thread와 Native Thread를 혼용해서 사용하면 어떻게…
Native C++로 작성한 소프트웨어를 C++/CLI로 포팅해야 하는 상황이었다. 컴파일러에 /clr 옵션을 주고 빌드하자 한번에 성공했다. 기뻐하며 F5 키를 눌러 실행시키는 순간, 런타임 오류가 발생했다. 각설하고 이틀 가량 조사하고 테스트한 결과,…
#pragma managed 또는 #pragma unmanaged를 섞어가며 코드를 작성해 놓으면, 디버깅 중에 지금 보고 있는 코드가 CLR 코드인지, Native 코드인지 구분이 안 갈 때가 있다. 이런 경우엔 우선 로컬 변수의 초기화가…
Advanced Micro Device는 지난 금요일 Transmeta에 750만 달러를 투자하기로 하였다고 합니다.회사측의 언급으로는 주식의 가치가 앞으로 어떻게 될지는 일종의 도박과도 같지만 거래는 Transmeta의 우선주에 대해 교환으로 이뤄질 것이라고 합니다.두회사 모두 즉각적인…