WPARAM mit String^
-
Hallo!!
ich will eine Nachricht zwischen zwei Formen meiner Application einrichten. Die Nachricht soll eine String und ein Integer enthalten.
Mein String ist im einen TextBox gespeichert, aber ich weiß es nicht, wie die String in Wparam einpacken kann, da TextBox ein Objekt ist und WPARAM ein Uint_ptr ist.
Wenn ich verwende:SendMessageW(myhandle,WM_USER+40,reinterpret_cast<WPARAM>(this->textBox->Text),(LPARAM)i)
ich bekomme den Fehler
Error C2440: reinterpret_cast cannot convert from System::String^ to WPARAM a type representing an address in the gc heap can only be converted to integral type via pinning
Habt ihr eine Idee wie ich das machen soll?
Danke in voraus
garrido
-
Hallo,
dies müßte mittels 'GCHandle.Alloc(..., GCHandleType.Pinned)' sowie 'GCHandle.ToIntPtr()' funktionieren. Und nicht vergessen mittels 'Free()' das Handle wieder freizugeben.
Wenn du aber nur innerhalb deiner Anwendung Daten austauschen willst, dann benutze dafür besser Ereignisse bzw. bei aktiver Benachrichtigung Eigenschaften bzw. rufe eine Methode auf, s. mein (C#-) Artikel Kommunikation von 2 Forms