delegate c# übersetzung
-
Hallo zusammen
ich setzte eine Dll ein
http://www.codeproject.com/KB/list/ObjectListView.aspx
und will das Objekt Treelistview einsetzten (Punkt 3.4 in der anleitung)
hier wird der C# code dazu angegebenthis.treeListView.CanExpandGetter = delegate(object x) { return (x is DirectoryInfo); }; this.treeListView.ChildrenGetter = delegate(object x) { DirectoryInfo dir = (DirectoryInfo)x; return new ArrayList(dir.GetFileSystemInfos()); };
kann mir jemand dabei helfen den Code in C++ zu übersetzten
ich komm einfach nicht draufDanke
-
Den Code kann Dir niemand in C++ übersetzen, da Du in C++ kein .NET verwenden kannst....
Es geht höchstens in C++/CLI... wobei dies wiederum keinen Sin macht:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-263084.htmlDas Problem bei dem Code ist die "anoymous" Methode... die gibt es in C++/CLI (noch) nicht... mach einfach eine ganz normale daraus:
this.treeListView.CanExpandGetter = MyCanExpandeGetterMethod; bool MyCanExpandeGetterMethod(object x) { return (x is DirectoryInfo); }
-
ref class Form1 : public Form { private: TreeListView^ treeListView; public: void Test() { this->treeListView->CanExpandGetter = gcnew TreeListView::CanExpandGetterDelegate(this, &Form1::CanExpand); this->treeListView->ChildrenGetter = gcnew TreeListView::ChildrenGetterDelegate(this, &Form1::Children); } private: bool CanExpand(Object^ obj) { DirectoryInfo^ dirInfo = dynamic_cast<DirectoryInfo^>(obj); return dirInfo != nullptr; } IEnumerable^ Children(Object^ obj) { DirectoryInfo^ dirInfo = safe_cast<DirectoryInfo^>(obj); return dirInfo->GetFileSystemInfos(); } };
BTW: http://www.c-plusplus.net/forum/viewtopic-var-t-is-263084.html
Edit: oh.. hab zu lange rumgetrödelt...
-
Dafür ist Deine Implementierung vermutlich richtiger