错误:托管类的成员函数中不允许使用本地Lambda

时间:2019-11-28 05:33:36

标签: c++ c++-cli

我正在尝试使用从下面的链接获得的代码在C ++中实现事件机制

https://www.codeproject.com/Articles/1256352/CppEvent-How-to-Implement-Events-using-Standard-Cp

  1. 我已经使用了从以上链接获得的代码中的事件类。
  2. 然后我在myTestClassCpp中使用了该事件。
  3. 然后我在TestCLI类中订阅了该活动
  4. 发生错误。

当我尝试在CLI类中使用subscription事件时,出现错误消息

错误:托管类的成员函数中不允许使用本地lambda

如果我在C ++中使用同一事件,它将起作用。 CLI中存在问题

如何解决以上错误?

下面显示了我的CLI和C ++代码

'''CLI

TestCLI::TestCLI()
{
    //Event Subscription 
    testClassCpp.LogNotification += [this](string data)//Error:Local lambda is not allowed in a member function of managed class
    {
        Write(data); 
    };
}   

void TestCLI::Write(string data)
{
    cout<<data<<endl;
}


'''




'''CPP

class __declspec(dllexport) TestClassCpp
{
public:
    //Event mechanism obtained from the above link
    sz::event <string>LogNotification;

};
'''

0 个答案:

没有答案