我的情况是最简单的答案是.net样式事件。我从来没有在c ++中使用过事件,并且认为它甚至没有任何东西。无论如何,我找到了这个msdn页面:http://msdn.microsoft.com/en-us/library/ee2k0a7d.aspx并尝试按照其示例添加
[event_source(native)]
到我班级的顶部,
__event void fileChanged(std::wstring fileName);
作为公共成员,但它不会编译并给我错误"不能在需要对象展开的函数中使用__try"我甚至不知道它意味着什么或__try与任何东西有什么关系(因为我不会在课堂上有任何尝试块,如果这就是它所指的那样)。对象放松?笏。
答案 0 :(得分:1)
您的MSDN页面告诉您C ++中有事件。该页面上的示例编译并正常工作。这使我认为您正在尝试设置的特定事件存在问题。
接下来我要做的就是查看错误的MSDN页面:C2712
此页面指出使用__event
关键字时会发生此错误,并且您按值传递参数(请参阅链接以获取准确的说明)。实际上,将调用更改为常量引用会导致错误消失:
__event void fileChanged(const std::wstring& filename);