0

Winform が c++/cli マネージ クラスによって初期化されるアプリケーションがあります。どちらも個別のプロジェクトであり、dll を生成し、マネージ プロジェクトが winform dll を参照しています (明らかに)。

したがって、シナリオは Winform でいくつかのボタンをクリックすることであり、マネージド クラスでメソッドを呼び出す必要があります。デリゲートが進むべき道であることは知っていますが、これを行う方法に関するいくつかの小さなコードスニペットまたはいくつかのポインターは非常に役立ちます。

4

1 に答える 1

0

WPF から呼び出される C++/CLI 関数の例を次に示します。
C++/CLI 側:

cppcli.h:

// cppcli.h

#pragma once

using namespace System;

namespace cppcli 
{
    public ref class cppClass
    {
        public:
            String^ cppFunction(int value);
    };
}

cppcli.cpp:

// This is the main DLL file.

#include "stdafx.h"  
#include "cppcli.h"

namespace cppcli 
{
    String^ cppClass::cppFunction(int value)
    {
        String^ message = gcnew String("The value you passed was: " + value);
        return message;
    }
}

次に、C# 側で:

private void button1_Click(object sender, RoutedEventArgs e)
{
    cppClass cppObj = new cppClass();
    string message = cppObj.cppFunction(42);
    textBlock1.Text = message;
}

結果:
人生の意味

于 2012-07-19T20:23:36.503 に答える