C# 프로젝트를 만들고 기존의 네이티브 (C++) 코드를 구현하고 싶습니다. 누구든지 그것에 대해 좋은 튜토리얼에 대해 알고 있습니까?.NET (C#)에서 기존 C++ 코드를 사용하는 방법
감사합니다.
C# 프로젝트를 만들고 기존의 네이티브 (C++) 코드를 구현하고 싶습니다. 누구든지 그것에 대해 좋은 튜토리얼에 대해 알고 있습니까?.NET (C#)에서 기존 C++ 코드를 사용하는 방법
감사합니다.
C++ 코드에 대해 관리되는 래퍼를 사용하지 않는 이유는 무엇입니까?
당신의 C++ 코드가 (당신이 말한대로) 관리되는 경우, 나는 당신이에 아주 좋은 이유가하지 않는 한 C++ 로 두는 것이 좋을 것 - 미래의 C#을 (등) 어셈블리는 '있는 그대로'참조 할 수 있어야합니다.
아마도 가장 쉬운 방법은 관리되는 C++과 관리되지 않는 C++를 혼합 할 수있는 C++/CLI 프로젝트를 만드는 것입니다. 그런 다음 관리되지 않는 C++ 클래스를 C# 코드에서 직접 호출 할 수있는 관리되는 .Net 래퍼로 래핑 할 수 있습니다. MSDN 매거진은 C++/CLI에서 article을 소개합니다.
Interop은 C 스타일의 함수를 호출 할 때만 유용합니다. 정말로 순수 C++ 클래스와 상호 작용할 수는 없습니다.
이 튜토리얼을 통해이 사실을 알게되었으므로 좋은 튜토리얼은 없지만 관리해야 할 C + + 및 C++/CLI와 관리되지 않는 코드를 매우 모호한 이음새로 통합하는 두 가지 사항이 있습니다. . C#에서는 그렇지 않습니다./SetWindowText로 호출하면 P해야
dotNetForm->Text = S"My Project"; // regular managed code
::SetWindowText(dotNetForm->Handle, "Your Project"); // mixed managed/unmanaged
C#에서 반면 -하지 않는 것이 당신이 정말로 것 : 관리 C++에서는 이런 일을하는 것은 매우 가능성이 그냥 간단한 예제입니다,하지만 당신은 필요 관리되는 C++ 컴파일러는 투명하게 많은 상호 운용성을 수행하고 동시에 (즉, 암시 적 marashalling을 수행하지 않을) 당신을 위해 아무 것도하지 않는 이상한 조합이라는 것을 알고 있어야합니다.
이 기존 코드을 구현한다고 가정하면 C++ 코드를 최소한으로 변경하고 C#에서 호출하려고한다는 것을 의미합니다.
나는 팬이라는 책을 사서 C++/CLI in Action 최근 구매자에게 유용한 샘플 장이 몇 권 있습니다.
이 intro on CodeProject은 좋은 출발점입니다.
C++/CLI in Action의 저자는 CodeProject에 대한 기사가 많으며 C++/CLI 섹션까지 his index으로 스크롤하십시오.입력 지원
MSDN에 가장 좋은 출발점이 summary article입니다 핀
좋은 점 - 나는 이것을보고 "기존 * un * managed (C++) 코드"로 읽었습니다. 문맥을 감안할 때 오타가 될 수 있습니다. –
나는 경험을 통해 항상 처음부터 확실하게 확인할 가치가 있음을 알았습니다. 물론 오타 일 경우 많은 답변이 주어졌습니다. –
내 실수 ... 네이티브입니다. C++ –