gpt4 book ai didi

C# ToCharArray 不适用于 char*

转载 作者:太空狗 更新时间:2023-10-29 23:33:57 27 4
gpt4 key购买 nike

我有以下结构:

[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*。我怎么写这个?谢谢

最佳答案

像这样:

[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,这是很不寻常的。如果这与 C 代码互操作,那么 CharSet.Ansi 的可能性很大。

关于C# ToCharArray 不适用于 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529462/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com