Подскажите как прибавить int к IntPtr в Cи языке?
extern "C" __declspec(dllexport) const char* Plus(IntPtr intptr, int ints)
{
Что тут нужно прописать, чтобы добавить int?
return итоговый IntPrt;
}
Вы делаете что-то не понятное.
IntPtr т.к. это инкапсуляция голого указателя типа void * для .NET платформы.Ваша проблема решается примерно так:
extern "C" __declspec(dllexport) void* Plus(void* input_data, int offset)
{
return (void*)input_data+offset;
}
Далее при использовании в .NET, вы смело можете оперировать с вашим переданным IntPtr в такую функцию.
[DllImport("MySuperIntarface.dll")]
static extern IntPtr Plus(IntPtr inputData, int offset);
void someMethod()
{
IntPtr myData = IntPtr.Zero;
IntPtr newData = Plus(myData, 4);
Console.WriteLine("Old pointer is: {0}, new pointer is: {1}", myData, newData);
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей