c ++中有事件吗?

时间:2014-07-06 19:02:12

标签: c++ events c++-cli

我的情况是最简单的答案是.net样式事件。我从来没有在c ++中使用过事件,并且认为它甚至没有任何东西。无论如何,我找到了这个msdn页面:http://msdn.microsoft.com/en-us/library/ee2k0a7d.aspx并尝试按照其示例添加

[event_source(native)] 

到我班级的顶部,

__event void fileChanged(std::wstring fileName); 

作为公共成员,但它不会编译并给我错误"不能在需要对象展开的函数中使用__try"我甚至不知道它意味着什么或__try与任何东西有什么关系(因为我不会在课堂上有任何尝试块,如果这就是它所指的那样)。对象放松?笏。

1 个答案:

答案 0 :(得分:1)

您的MSDN页面告诉您C ++中有事件。该页面上的示例编译并正常工作。这使我认为您正在尝试设置的特定事件存在问题。

接下来我要做的就是查看错误的MSDN页面:C2712

此页面指出使用__event关键字时会发生此错误,并且您按值传递参数(请参阅链接以获取准确的说明)。实际上,将调用更改为常量引用会导致错误消失:

__event void fileChanged(const std::wstring& filename);