2014-07-06 48 views
1

我有一种情况,最简单的答案是.net风格的事件。我从来没有在C++中使用过事件,并且觉得它甚至没有任何事件。无论如何,我发现这个MSDN页面:http://msdn.microsoft.com/en-us/library/ee2k0a7d.aspx并试图跟随它例如添加C++中是否有事件?

[event_source(native)] 

我班上的第一名和

__event void fileChanged(std::wstring fileName); 

作为公共成员,但它不会编译,给我的错误“不能在需要对象展开的函数中使用__try”,我甚至不知道它是什么意思或者什么__try与任何东西有关(因为我没有在类中的任何try块,如果这就是它指的是什么) 。和对象展开?笏。

+0

没有,有没有在第一名这样的概念,但提供容易建立这样几个标准机制。 –

+0

hm ...也许这只是尝试将'std :: wstring'更改为'std :: string' – Quest

+0

您可以尝试inotify API – Emma

回答

1

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

所以我做的下一件事就是看MSDN页面错误:C2712

此页指出,可以使用__event关键字时,会出现这个错误,你按值传递参数(见链接的确切描述)。事实上,改变呼叫恒定参考导致错误走开:

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