0
namespace mcWrapper {
struct S1
{
int n1;
int n2;
};
class C1
{
public:
void Test(S1* ps1)
{
};
};
public ref class Class1Wrapper
{
public:
Class1Wrapper()
{
_pC1 = new C1();
};
void Test(S1* ps1)
{
_pC1->Test(ps1);
}
private:
C1* _pC1;
};}
ビルドすると、.net dllを取得できます。管理されたC++を使ってクラスをラッパー(ネイティブC++)、ネイティブ構造体をどうやってやりますか?
このDLLを使用するC#クライアントを作成します。
//c#
public Form1()
{
InitializeComponent();
var c1 = new mcWrapper.Class1Wrapper();
//we can find Test method , but we cannot type codes like: s1*
c1.Test()//?????????????????????????????????
}
私はC#でClass1Wrapper.Testを実行することはできません。
次に、Test()をTest(int^n)に変更しようとしました。 Test(int n)をTestとして見つけました。
ようこそ、スタックオーバーフロー!実際の回答の場合にのみ* Post answer *ボタンを使用してください。この回答に関する情報を含む追加情報を追加するには、質問を修正する必要があります。 –
私はそれを簡単にする方法がないのではないかと心配しています。そして、 'S1'がもっと複雑なクラスであれば、' CsS1'が 'S1'ポインタを包むようにすればもっと複雑になります。 – Stephan