Jue*_*gen 5 c# arrays string pointers
我有以下结构:
[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];
}
Run Code Online (Sandbox Code Playgroud)
现在,我想将字符写入MarketSymbol字段:
string symbol = "test";
Attributes.MarketSymbol = symbol.ToCharArray();
Run Code Online (Sandbox Code Playgroud)
编译器抛出一个错误,说它无法从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;
}
Run Code Online (Sandbox Code Playgroud)
注意 pack = 1,这是很不寻常的。如果与 C 代码互操作,CharSet.Ansi 的可能性很大。
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |