좀 긴가민가했던 .NET core 관련 내용을 정리하다가, 올바른 unmanaged 리소스 청소법을 위한 '지저분하기 짝이 없는, 그러나 반드시 알아야 하는' Finalize, IDisposable에 다다랐는데, 흥미롭게도 C# 쪽 pattern과 C++/CLI 쪽 pattern이 (적어도 표면 상으로는) 완연히 다르다는 사실을 발견. 본 사항은 정상적 application 구현을 위해서는 반드시 숙지해야 할 내용인데, 언어 별로 그리도 달라서야 원. 게다가, C++/CLI 쪽 MSDN 설명은 뭔가 하나 빠진 듯 하여 다 읽고 나서도 제대로 이해가 가질 않는다. 언어 별로 따로 익혀야 하는 것도 거시기한데, 설명이라도 제대로 해야지. 먼저, C#쪽 pattern. MSDN에 떡하니 올라와 있는 정형화된 ..
http://blogs.msdn.com/vcblog/archive/2008/12/08/inheriting-from-a-native-c-class-in-c.aspx 내가 이런 엄청난 - 미친 일을 했다는 건 아니고, ATL Internals의 Jim Springfield가 했다는 말이다. 위는 그의 컬럼이 담긴 링크이다. 금년 한해 동안 내가 만지작거린 MS 기술을 요약하자면, WPF + Interop(via P/Invoke, C++/CLI)이 되겠는데, P/Invoke의 극단을 보여준 위 컬럼이 흥미를 끌어서리. 잠시 보면 알겠지만, metadata 떡칠로 일관하는데, 그 떡칠을 실제 프로젝트에 적용하는 건 미친 짓이나 다름없다. 그럼 그가 과연 미쳤기 때문에 이와 같은 일을 벌렸느냐? 천만에. 모든 위..
C++/CLI로 Managed Type, Native Type 짬뽕하기(1/2)에 이어 계속.. /////////// Managed Type에서 Native Type을 사용할 경우. 1. Native Type의 Method 안에서 Managed Type 생성 및 사용 가능 (단, 해당 .cpp 파일은 /clr(공용 언어 런타임 지원) 옵션으로 컴파일해야함) ref class Managed {}; class Native { public: void Method() { Managed^ managed = gcnew Managed(); }; }; 2. clr based enumeration 사용 가능ref class enum ClrEnum { Entry }; class Native { int GetEntry() ..
* 주요 개념은 Passing parameters to predicates 컬럼에서.. List::Find() 등의 검색 메서드에서 조건을 지정할 때 사용하는 Predicate 타입의 대리자. MSDN에는 인수를 지정할 수 없는 static 함수형 예제만 나와 있는데, 이보다 더 많이 쓰이게 될 형식은 객체형 대리자 및 무명 메서드이다. 다음은 MSDN에 올라온 함수형 predicate 사용법의 예제다. using System; using System.Drawing; public class Example { public static void Main() { Point[] points = { new Point(100, 200), new Point(150, 250), new Point(250, 375), n..
/////////// Managed Type, Native Type 공통 1. Native Type와 Managed Type 교차 상속 불가(H.Sutter에 의하면 지원 예정이라고.) class Native {}; ref class Managed: public Native {}; //불가 ref class Clr {}; class Native : public Managed {}; //불가/////////// Managed Type에서 Native Type을 사용할 경우. 1. Managed Type의 멤버로 Native Type 객체 생성 불가. 단, pointer Type일 경우에는 가능.class Native {}; ref class Clr { public: Native native; //불가 Na..
원문은 이곳에서.. 다음은 header의 선언부. using namespace System; public ref class Test { long mValue; array^ mValues; public: Test() {} property long noindex { void set(long); long get(); } property long indexed[int] { void set(int,long); long get(int); } };위 선언부에 대한 정의는.. long Test::noindex::get() { return mValue; } void Test::noindex::set(long value) { mValue = 0; } long Test::indexed::get(int index) { ret..
- Total
- 1,719,520
- Today
- 3
- Yesterday
- 21
- C++/CLI
- Logic Pro
- Richter
- A dramatic turn of events
- U2
- SWEBOK
- 영화
- stl/clr
- Dream Theater
- 일본여행
- 83회 조직응용
- PKI
- Karma Cutting
- Kurzweil
- C++
- TI 수영
- 배낭여행
- PC3x
- 수영
- ORM
- stanley lippman
- stl.net
- UML
- X.509
- jordan rudess
- Entity Framework
- Entity Framework 4.0
- 도쿠가와 이에야스
- COM
- Entity Framework 1.0