void Pointer

Norbert Eder

Erfahrenes Mitglied
Hi,

eine kleine Frage:
Ich habe eine Komponente, die von aussen ein JavaScript-Objekt bekommt. Dieses Objekt kann von JavaScript-Seite entweder Date oder Number sein.

Ich meiner C++-Klasse hab ich bis dato einen void Pointer vorgesehen der den Wert übernimmt. Zur weiteren Verarbeitung müsste ich allerdings wissen, um welchen Typ es sich tatsächlich handelt. typeid() hilft mir hier leider nicht weiter. Jemand eine Idee wie ich das lösen könnte?

Danke.
 
Probier das mal mit dynamic_cast.

When dynamic_cast cannot cast a pointer because it is not a complete object of the required class it returns a null pointer to indicate the failure. If dynamic_cast is used to convert to a reference type and the conversion is not possible, an exception of type bad_alloc is thrown instead.
 
Ne, hatte ich auch schon ausprobiert. Funktioniert wunderbar, wenn herum-abgeleitet wird etc, jedoch eben nicht mit std::wstring/CString, int, etc.
 
Hi.

Also so wie ich das sehe, müßte ja das Javascript System wissen welches konkrete Objekt das ist. Entweder kannst du für ein bestimmtes Objekt von dem du die Adresse hast, das Javascript System fragen was es für ein Typ ist, oder das System liefert dir ein korrektes C++ Objekt mit Typinformation mit dem du dann weiter hantieren kannst.

Was für eine Javascript Implemenierung verwendest du denn? Wie sieht denn die Anbindung an C++ aus?

Gruß
 
Ich hab das Problem inzwischen gelöst.

Über Invoke (Dispatch ID etc.) bekomm ich ja den Methodenaufruf und die Parameter rein, die von einem bestimmten Variant-Typ sind. Damit kann ich ansich bestimmen, was daher gekommen ist.

Trotzdem danke für Eure Hilfen.
 
Zurück