Арифметические операции с IntPtr - C#
Формулировка задачи:
Доброе времени суток, нужна ваша помощь, есть фрагмент рабочего кода:
В последней строчке кода (Marshal.StructureToPtr(itemDef[i], pItems + Marshal.SizeOf(type), false)
выпадает ошибка "Операция "+" не может применяться к IntPtr и int". Код с рабочего приложения и он работает.
Почему у меня не хочет не пойму?
//Создаем список элементов для добавления в группу(AddItems), размером 1 элемент uint dwCount = (uint)this.m_listItems.Items.Count; //uint dwCount = 1; Type type = typeof(tagOPCITEMDEF); // выделяем кусок в неуправляемой памяти под n элементов типа tagOPCITEMDEF IntPtr pItems = Marshal.AllocCoTaskMem((int)dwCount * Marshal.SizeOf(type)); //Создаем описатель добавляемого элемента tagOPCITEMDEF[] itemDef = new tagOPCITEMDEF[dwCount];//создаем новую структуру for (int i = 0; i < dwCount; i++) { itemDef[i].szItemID = //ItemID; itemDef[i].szAccessPath = null; itemDef[i].bActive = Convert.ToInt32(Enabled); itemDef[i].hClient = 1; itemDef[i].vtRequestedDataType = (ushort)VarEnum.VT_EMPTY; itemDef[i].dwBlobSize = 0; itemDef[i].pBlob = IntPtr.Zero; Marshal.StructureToPtr(itemDef[i], pItems + (dwCount-1) * Marshal.SizeOf(type), false); }
Решение задачи: «Арифметические операции с IntPtr»
textual
Листинг программы
int m = 256; IntPtr p = new IntPtr(256); IntPtr newP = new IntPtr((int)p + m);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д