Witam ,
mam problem z przesłaniem struktury za pomocą WM_COPYDATA z c++ do c# właśnie z powodu typu LPCWSTR i hdc . Rozumem ze żeby przesłać taka strukturę muszę ja stworzyć w c# .
pytanie 1 jakich typów użyć ? jak wypełnić taka strukturę ?
tak wygląda która chce przesłać w w c++
struct Struktura
{
HDC hdc;
int X;
int Y;
LPCWSTR text;
};
w c# próbowałem ustawic text jako IntPtr i wypełnić w ten sposób ale coś nie działa ;)
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case Win32.WM_COPYDATA:
struktura sStruktura;
Win32.CopyDataStruct st = (Win32.CopyDataStruct)Marshal.PtrToStructure(m.LParam, typeof(Win32.CopyDataStruct));
sStruktura = (struktura)Marshal.PtrToStructure(st.lpData, typeof(struktura));
string tx = Marshal.PtrToStringUni(struktura.Text);
textBox1.Text += tx; // wyświetla same krzaki albo nic czasem się zawiesza generalnie masaka
break;
default:
base.WndProc(ref m);
break;
}
}
Z góry dziękuję za odpowiedź