Laden...

[erledigt] Wie übersetze ich das Feld "char szAccess[2]" aus einer C++ lib in C#?

Erstellt von Yeats vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.313 Views
Y
Yeats Themenstarter:in
102 Beiträge seit 2005
vor 7 Jahren
[erledigt] Wie übersetze ich das Feld "char szAccess[2]" aus einer C++ lib in C#?

Hallo,

Bin dabei einen Wrapper für eine C++ dll zu schreiben. In dieser dll gibt es diese Typ

typedef struct tagXCSymbolDesc
{
	LPSTR pszName;
	LPSTR pszType;
	WORD  uRefId;
	ULONG ulOffset;
	ULONG ulSize;
	char  szAccess[2];
}XCSymbolDesc;

Meine Frage hierzu wie übersetze ich nun am besten das Feld char szAccess[2] nach C#?

Mfg

L
94 Beiträge seit 2013
vor 7 Jahren
char[] array = new char[2];
S
248 Beiträge seit 2008
vor 7 Jahren

Hallo,

du könntest es als byte[] definieren und mit mit dem MarshalAs Attribut in Kombination mit UnmanagedType.ByValArray und SizeConst=2 versehen.

Grüße
spooky

PS: char aus C++ ist in .NET byte.

W
872 Beiträge seit 2005
vor 7 Jahren

Wenn Du bereit bist unsafe zu nehmen, dann würde ich

 public fixed char szAccess[2];

nehmen.
Wenn Du auf unsafe verzichten möchtest, dann würde ich


[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte szAccess[2]; 

benutzen.