バイトの配列を取得します。これをC#structにアンマーシャリングする必要があります。 私は構造体の型を知っています、それはいくつかの文字列フィールドを持っています。 バイト配列の文字列は次のようになります。最初の2バイトは文字列の長さ、次に文字列自体です。 文字列の長さを知りません。 私はそのUnicodeを知っています!C#で未知の長さの文字列フィールドを持つ構造体をマーシャリングする方法
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public class User
{
int Id;//should be 1
String UserName;//should be OFIR
String FullName;//should be OFIR
}
バイト配列はそうのようになります。 00,00,01,00、00,00,08,00 、 4F、00,46,00,49,00,52,00、 00,00,08,00、 4F、00,46,00,49,00,52,00、
私も同じ問題を持つこのリンクは未解決のが見つかりました: loading binary data into a structure
はあなたのすべてをありがとう、 Ofir
Ofirは、コメントを追加したり、質問を自由に展開したい場合は、提案された編集内容をコミュニケーション手段として意味しません。 –
バイト配列から1をどのように取得しますか? 'int'は4バイトで、' {00、00、01、00} 'です。これは1ではありません。 – Amy
私の'答え 'を見てください。私はより多くの情報が必要です。バイト配列を知るだけでは不十分です。ネイティブ構造はどのように見えますか? – Amy