Donnerstag, 6. Dezember 2012

C++ in Windows 8-Apps (Notizen aus der Hotline)

Ich komme wahrscheinlich nicht dazu, das alles fein säuberlich ins Forum zu stellen, deshalb hier in aller Kürze:

Platform::COMException^ HRESULT:0x8000000E

Das hier ist eine generische COM-Fehlermeldung mit dem Namen "E_ILLEGAL_METHOD_CALL". Sie tritt manchmal auf, wenn man eine asynchrone Methode synchron aufruft, z.B. …->GetBasicPropertiesAsync()->GetResults(). In diesem Fall bedeutet das, dass die Resultate noch nicht vorhanden sind. Zur Lösung einfach create_task verwenden.

Einen String splitten in Windows 8

Das geht genau so, wie überalls sonst in C++ auch. Die Klasse Platform::String ist eben nicht als Neuimplementierung gedacht.

Anleitung:
  1. Konvertiert zunächst den Platform::String^ in einen std::wstring mit dem Aufruf "std::wstring str = text->Data()"
  2. Verwendet dann eine der Methoden von hier zum splitten: http://stackoverflow.com/questions/236129/splitting-a-string-in-c
Gründe für diese Verhalten: http://stackoverflow.com/questions/13621292/how-to-perform-string-split-based-on-space-for-platformstring

[update]
Im MSDN-Forum steht jetzt mein Beitrag zum Zerteilen von Strings mit Windows Metro.

Keine Kommentare:

Kommentar veröffentlichen