[C++/CLI] Mixed-Type 사용시의 메모리 해제 문제

네이티브 C++에서의 DLL을 CLR 환경에선 Assembly라 부른다. 그런데 CLR 환경에선 한번 불러들인(Load) 어셈블리를 마음대로 해제(Unload)할 수가 없다. 애초에 System::Reflection::Assembly에는 Unload에 해당하는 함수 자체가 없다. 단 독립적인 메모리 공간을 갖는 애플리케이션…

7 Comments

(2007.07.13) 오늘의 Visual C++ 소식

Microsoft Visual C++ 2005를 사용한 프로필 기준 최적화 요약 링크 시간 코드 생성(LTCG)과 프로필 기준 최적화(PGO)를 사용하면 20% 이상 성능을 향상시킬 수 있다고 한다. ATL 서버 라이브러리와 도구 소스코드가 공개되었다.…

0 Comments

Deep Inside .NET garbage collectors

GC 모드 값에 따라 가비지 콜렉터의 개수가 달라진다고 했었다. 그러나 의문이 남았다. 한 프로그램에 애플리케이션 도메인이 여러 개 있을 때는 어떻게 될까? C++/CLI에서 Managed Thread와 Native Thread를 혼용해서 사용하면 어떻게…

0 Comments

[C++/CLI] Thread Local Storage 사용 문제

Native C++로 작성한 소프트웨어를 C++/CLI로 포팅해야 하는 상황이었다. 컴파일러에 /clr 옵션을 주고 빌드하자 한번에 성공했다. 기뻐하며 F5 키를 눌러 실행시키는 순간, 런타임 오류가 발생했다. 각설하고 이틀 가량 조사하고 테스트한 결과,…

Comments Off on [C++/CLI] Thread Local Storage 사용 문제

[C++/CLI 디버깅] 어느 게 CLR 코드야?

#pragma managed 또는 #pragma unmanaged를 섞어가며 코드를 작성해 놓으면, 디버깅 중에 지금 보고 있는 코드가 CLR 코드인지, Native 코드인지 구분이 안 갈 때가 있다. 이런 경우엔 우선 로컬 변수의 초기화가…

0 Comments

.NET 가비지 콜렉터의 종류

Server GC 멀티 프로세서(또는 멀티 코어)를 탑재한 컴퓨터에서만 작동한다. 각 프로세서마다 하나의 GC 힙(그리고 하나의 GC 쓰레드)를 할당하고, 가비지를 병렬로 수집한다. 세 가지 GC 모드 중 가장 성능과 확장성이 좋다.…

0 Comments

[C++/CLI] 조사한 내용 정리

컴파일 C++ 프로젝트 전체에 /clr 컴파일 옵션을 주지 않고도 파일(.cpp) 별로 컴파일 옵션을 설정하는 것이 가능하다. /clr 옵션은 '/Yu: 미리 컴파일된 헤더 사용', '/Gy: 함수 수준 링크 사용' 등의 몇몇…

0 Comments

Partition Saving으로 NTFS 파티션 백업하기

데스크톱용 백업 소프트웨어인 Norton Save & Restore를 구매해달라고 요청했지만, 안 된다는 답변을 받았다. 정책이 그렇다고 해서 후일 귀중한 시간을 절약해줄 파티션 이미지 백업을 안 할 수도 없었다. 그래서 대안을 찾아…

0 Comments

구글 포토 스크린세이버

구글 팩 영문판에만 있는 구글 스크린세이버. 그 사이 새 버전이 나왔는데, 디자인과 기능 모두 향상됐다. 구글 스크린세이버에 대해 알아보자. 구글 스크린세이버 스냅샷 구글 팩 영문 사이트에 들어가야 구글 스크린세이버를 다운로드…

0 Comments