我有一个应用程序,其中 winform 由 c++/cli 托管类初始化。它们都是单独的项目,生成 dll,并且托管项目引用 winform dll(显然)。
所以现在场景是在 Winform 中单击某个按钮,我需要在我的托管类中调用一个方法。我知道代表是要走的路,但是一些小代码片段或一些关于我应该如何去做的指示会非常有帮助。
这是从 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;
}
结果: