Я конвертирую некоторый код из C ++ в C #, и мне нужно немного понять, как работать со строками, подобными этим:
PDWORD rgb32_data = (PDWORD) malloc(640*480*4);
Насколько я понимаю, тип PDWORD
представляет целое число без знака (32 бита). Какова будет хорошая стратегия C # для реализации подобной структуры?
РЕДАКТИРОВАТЬ: я понял, что мне нужно использовать IntPtr для замены PDWORD, но IntPtr будет содержать одно значение в отличие от многих значений, как в массиве. Любые предложения C #?
EDIT2: Uint [] не работают для меня - к сожалению, единственный способ, которым я могу заставить программу компилироваться со всеми ее зависимостями, это когда я ввожу в качестве аргумента IntPtr, а не IntPtr [].
Спасибо.
РЕДАКТИРОВАТЬ - я отметил решение, кроме того, мне нужно было сделать следующее:
Так как мне нужно было использовать IntPtr, я добавил этот код
IntPtr rgb32_ptr;
GCHandle handle = GCHandle.Alloc(rgb32_data, GCHandleType.Pinned);
try
{
rgb32_ptr = handle.AddrOfPinnedObject();
}
finally
{
if (handle.IsAllocated)
{
handle.Free();
}
}
чтобы получить IntPtr к тому же.