从c#dll回调c ++ / cli方法

时间:2012-07-18 09:55:48

标签: callback c++-cli

我有一个应用程序,其中一个winform由c ++ / cli托管类初始化。它们都是单独的项目,生成dll,以及Managed project引用winform dll(显然)。

所以现在的情况是Winform中的某些按钮点击我需要在我的托管类中调用一个方法。我知道代理是要走的路,但是一些小的代码片段或关于我应该怎么做的一些指示将非常有帮助。

1 个答案:

答案 0 :(得分: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;
}

结果:
The meaning of life