Interop mellom C ++ og C #

stemmer
1

Jeg har dette structi C ++:

struct TEXTMSGSTR
{
    HWND Sender;
    wchar_t Text[255];
    //wchar_t *Text;
};

og i C #:

public struct TEXTMSGSTR
{
    public IntPtr Sender;
    public ? Text;
}

som jeg sender som en del av en COPYDATASTRUCTmelding fra uovervåkede til forvaltet kode. Hva ville være den riktige konstruksjonen av structpå C # side som C # ikke har wchar_t? Jeg har prøvd streng etc. men selvfølgelig feil vises!

Kan noen gi meg noen ideer om hvordan å skaffe til veie dette så bra som jeg er ny på denne ting ?:

TEXTMSGSTR tx = (TEXTMSGSTR)Marshal.PtrToStructure(cds.lpData, typeof(TEXTMSGSTR));
Publisert på 19/05/2009 klokken 21:06
kilden bruker
På andre språk...                            


2 svar

stemmer
2
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct TEXTMSGSTR
{
    public IntPtr Sender;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)]
    public string Text;
}
Svarte 19/05/2009 kl. 21:24
kilden bruker

stemmer
0

Prøv System.Runtime.InteropServices.UnmanagedType LPTStr eller ByValTStr.

Også se på mitt svar på det spørsmålet

Svarte 19/05/2009 kl. 21:22
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more