C # ToCharArray не работает с char * - PullRequest
       0

C # ToCharArray не работает с char *

5 голосов
/ 23 сентября 2011

У меня есть следующая структура:

[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
unsafe public struct Attributes
{

    public OrderCommand Command { get; set; }

    public int RefID { get; set; }

    public fixed char MarketSymbol[30];
}

Теперь я хочу написать символы в поле MarketSymbol:

string symbol = "test";
Attributes.MarketSymbol = symbol.ToCharArray();

Компилятор выдает ошибку, говоря, что не может преобразовать из char [] в char *. Как мне написать это? Спасибо

1 Ответ

3 голосов
/ 23 сентября 2011

Как это:

[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct Attributes
{
    public OrderCommand Command { get; set; }
    public int RefID { get; set; }
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 30)]
    public string MarketSymbol;
}

Остерегайтесь pack = 1, это довольно необычно. И хорошие шансы для CharSet.Ansi, если это взаимодействует с кодом C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...