ここでは、これを行う方法の例を示します。まず、管理クラスを定義します(refおよびpublicとしてマークします)。これはC++/CLIプロジェクトでコンパイルする必要があります。
その後
// CCLI.h
#pragma once
using namespace System;
namespace CCLI {
public ref class A
{
public:
int test(){return 0;}
};
public ref class B
{
public:
static A^ a_Instance = gcnew A();
};
}
は、C#プロジェクトへの参照としてアセンブリを追加し、あなたがこの方法の要素を使用することがあります。
namespace CSharp
{
class Program
{
static void Main(string[] args)
{
CCLI.B b_instance = new CCLI.B();
CCLI.B.a_Instance.test();
}
}
}
二つ詳細:C++/CLIで使用されているのインスタンスがあります静的なフィールドを介して、静的に参照する必要があります。また、特定のアーキテクチャ(32ビットまたは64ビット)でC++/CLIをコンパイルする場合は、それを使用するドットネットアセンブリが適切なアーキテクチャ(x86またはx64)で起動されるようにします。
あなたはそれが不可能だと思いますか?何か問題があったのですか、何かエラーが発生しましたか? – nvoigt