WinAPI, UINT * to ?
От: Bron  
Дата: 02.03.05 06:36
Оценка:
В WinAPI приведена структура

typedef struct {  
  UINT idLength;  
  UINT* ids;
} AsnObjectIdentifier;


как правильно представить в данной структуре
UINT * ids
Re: WinAPI, UINT * to ?
От: ussr  
Дата: 02.03.05 07:59
Оценка:
Здравствуйте, Bron, Вы писали:

B>В WinAPI приведена структура


B>
B>typedef struct {  
B>  UINT idLength;  
B>  UINT* ids;
B>} AsnObjectIdentifier;
B>


B>как правильно представить в данной структуре

B>UINT * ids

UIntPtr?
Re: WinAPI, UINT * to ?
От: S_Ivanov Россия  
Дата: 02.03.05 08:18
Оценка:
Здравствуйте, Bron, Вы писали:

B>В WinAPI приведена структура


B>
B>typedef struct {  
B>  UINT idLength;  
B>  UINT* ids;
B>} AsnObjectIdentifier;
B>


B>как правильно представить в данной структуре

B>UINT * ids

Формально:

[StructLayout(LayoutKind.Sequential)]
public struct AsnObjectIdentifier
{
    public uint idLength;
    public IntPtr ids;
}


При формировании структуры придется сделать следующее:
— создать глобальный блок памяти с помощью Marshal.AllocHGlobal
— скопировать в него данные с помощью Marshal.Copy
— записать в поля структуры соответственно длину блока и указатель на блок памяти
— после использования освободить блок памяти с помощью Marshal.FreeHGlobal

Я бы лучше попробовал следующее:

[StructLayout(LayoutKind.Sequential)]
public struct AsnObjectIdentifier
{
    public uint idLength;
    public uint[] ids;
}


По идее должно сработать автоматически.
WinAPI, UINT * to ?
От: Аноним  
Дата: 02.03.05 13:07
Оценка:
[ StructLayout( LayoutKind.Sequential )]
public struct AsnObjectIdentifier
{
public UINT idLength;
public IntPtr ids;
}


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.