【发布时间】:2010-12-21 14:19:16
【问题描述】:
在 c# 程序集中,我有一个全局 prism CompositeCommand 可以像这样订阅:
private static readonly CompositeCommand __myCommand = new CompositeCommand();
public static CompositeCommand MyCommand
{
get { return _myCommand; }
}
从 c# 我可以使用以下命令订阅此命令:
[...].MyCommand.RegisterCommand(new DelegateCommand<MyClass>((c) => c.Something()));
我的问题:我需要从托管 c++ 订阅命令,但我不知道如何在 DelegateCommand 中使用函数签名。大多数时候我会收到如下错误:
错误 C2664: 'Microsoft::Practices::Prism::Commands::DelegateCommand::DelegateCommand(System::Action ^)': 参数 1 从 'void (__clrcall *)(MyNameSpace::MyClass ^) 的转换' 在 'System::Action ^' 中是不可能的。
如何订阅 c# 命令?或者是否有其他方式来监听事件(我可以用不同的东西替换 CompositeCommand)。
谢谢!
【问题讨论】:
-
您是尝试在托管/CLI C++ 还是本机 C++ 中处理命令?
-
哦,对不起,托管 C++。如果没有 cli,我什至不会梦想尝试这个 ;)